@
テキストブロックから記号を削除しようとしています。問題は、特定の場合 (行の先頭にある場合、@
記号をそのままにしておく必要がある場合) です。
RegExパターンを使用して成功し.\@
ましたが、@
記号が削除されると、その前の文字も削除されます。
目標:記号が行の最初の文字でない限り、すべて@
の記号を削除します。@
<?php
function cleanFile($text)
{
$pattern = '/.\@/';
$replacement = '%40';
$val = preg_replace($pattern, $replacement, $text);
$text = $val;
return $text;
};
$text = ' Test: test@test.com'."\n";
$text .= '@Test: Leave the leading at sign alone'."\n";
$text .= '@Test: test@test.com'."\n";
$valResult = cleanFile($text);
echo $valResult;
?>
出力:
Test: tes%40test.com
@Test: Leave the leading at sign alone
@Test: tes%40test.com