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'。 –