1
preg_replace
データベースから取得した文字列で使用すると、結果が返されません。データベースからの文字列でPHP正規表現が機能しない
$result = DB::connection("connection")->select("my query");
foreach($result as $row){
//prints run-d.m.c.
print($row->artist . "\n");
//should print run.d.m.c
//prints run-d.m.c
print(preg_replace("/-/", ".", $row->artist) . "\n");
}
これは、-
(ダッシュ)を交換しようとしたときにのみ発生します。私は他の文字を置き換えることができます。
$str = "run-d.m.c";
//prints run.d.m.c
print(preg_replace("/-/", ".", $str) . "\n");
私はここで何をしないのです。私は単純な文字列でこの正規表現をしようとした場合 しかし、それは期待通りに動作しますか?
'/ \ p {Pd}/''パターンを使用する場合、ハイフン/ダッシュと一致しますか? –
いいえ、まだ同じ文字列を表示します – Palo
次に、文字列に '-'がないことがあります。もしそれが役に立つのであれば、 '/ u'修飾子'/\ p {Pd}/u'を追加してみてください。 –