1

同様に、この質問のタイトルの 2 番目の部分が存在しなければ、これを実行できたはずです。

$string = 'Hello,this is my string.';
$replacedstring = str_replace(',', ', ', $string);

しかし、ユーザーが のように文を正しくフォーマットした場合はどうなるでしょうかHello, this is my string.。その結果、 になりHello, this is my string.たくありません。

preg_replaceでは、 PHP で および同様の正規表現関数を使用してそれを行うにはどうすればよいでしょうか?

4

4 に答える 4

9
$replaced_string = preg_replace("/,([^\s])/", ", $1", $str);

私はこれを使用します。

于 2012-09-16T08:52:50.117 に答える
2

これを使って:

$ret = preg_replace('/(?<=\S,)(?=\S)/', ' ', $string);
于 2012-09-16T08:49:56.813 に答える
0

使用できます

str_replace(array(', ', ','), ', ', $string);

,と置換するため冗長です,が、おそらく正規表現やそれほど大きくないテキストの他のアルゴリズムよりも効率的です

于 2012-09-16T08:53:23.517 に答える
0
$string = 'Hello,this is my string, sir.';
$pattern = '/,([^ ])/'; # every comma that is followed by anything but space
$replacement = ', ';
echo preg_replace($pattern, $replacement, $string);
于 2012-09-16T09:09:45.853 に答える