4

preg_replace()を使用して余分なスペース、ダッシュ、ピリオドを取り除く方法は知っていますが、文字列内の余分なアスタリスクを取り除くには、以下の形式が正しいかどうかを知る必要があります。

これらのコード行は、余分なスペース、ダッシュ、およびピリオドを取り除くために機能します。

// Strips out extra spaces
   $string = preg_replace('/\s\s+/', ' ',$string);
// Strips out extra dashes
   $string = preg_replace('/-+/', '-', $string);
// Strips out extra periods
   $string = preg_replace('/\.+/', '.', $string);

余分なアスタリスクを取り除くのに正しいのは次のうちどれですか?

// Version 1: Strips out extra asterisks
   $string = preg_replace('/\*+/', '*', $string);

// Version 2: Strips out extra asterisks
   $string = preg_replace('/*+/', '*', $string);

前もって感謝します。

ちなみに、PHPを使用するときにスラッシュでエスケープする必要があるすべての文字を示すリストはどこかにありますか?

4

1 に答える 1

6

これを試して:

$string = preg_replace('/\*{2,}/', '*', $string);

これにより、隣り合った複数のアスタリスクのインスタンスが1つのアスタリスクに置き換えられます。

または、すべてのアスタリスクを削除したい場合は、次のようにします。

$string = preg_replace('/[\*]+/', '', $string);

*は正規表現の特殊文字であることに注意してください。したがって、バックスラッシュでエスケープする必要があります。

また、ここに良い正規表現のリファレンスがあります:http: //www.regular-expressions.info/reference.html

複数の文字置換を1つの正規表現に組み合わせる方法は次のとおりです。

$string = preg_replace('/(\*|\.){2,}/', '$1', $string);

これにより、アスタリスクとピリオドが置き換えられます。

于 2012-05-17T20:40:25.373 に答える