文字列からすべてを削除しようとしていますが、数値(0-9)だけを削除しようとしています。私はこれが働くだろうと思った 数値以外のすべてを削除するPHPコード
...echo preg_replace("[^0-9]","",'604-619-5135');
しかしエコー "604-619-5135"。私は何が欠けているのですか?
文字列からすべてを削除しようとしていますが、数値(0-9)だけを削除しようとしています。私はこれが働くだろうと思った 数値以外のすべてを削除するPHPコード
...echo preg_replace("[^0-9]","",'604-619-5135');
しかしエコー "604-619-5135"。私は何が欠けているのですか?
これを試してみてください:
preg_replace('/[^0-9]/', '', '604-619-5135');
にpreg_replaceは、一般的に開始し、/
で終わるPCREsを使用しています。
パターンを区切り文字で囲む必要があります。通常、スラッシュ(/)が使用されます。これを試してみてください:
echo preg_replace("/[^0-9]/","",'604-619-5135');
[区切り文字は英数字以外の非バックスラッシュで空白文字ではありません。 (http://php.net/manual/en/regexp.reference.delimiters.php) –
内部/二重引用符はPCRE thoとは関係ありません。どうやら( '?(flags?)'の前日に)関数/ APIを設計/作成した人は、余分な関数パラメータを使う代わりに、正規表現のフラグを二重引用符で '/ flags'形式で渡すことを考えました。 – Qtax
@Qtax:良い点ですね。「grep」という単語が(「g/re/p」)から得られるところです。 –