2014-01-22 50 views
0

當前使用以下字符串作爲我的模式。 (警告:preg_match():未知修飾符'0')preg_match():未知修飾符

$between = preg_match("(.*)".$check."(.*)", _allbetween($coords1, $coords2)); 

我在做什麼錯?

以前從未在php中使用正則表達式,請原諒這可能是非常簡單的問題。

回答

2

您必須添加分隔符的圖案,並使用preg_quote如果$檢查包含一個文本字符串:

preg_match("/(.*)".preg_quote($check)."(.*)/", _allbetween($coords1, $coords2)); 

注意的preg_match返回1或0(TRUE或FALSE),而不是比賽結果(見php manual

+0

這很好用。我會選擇你的答案爲簡單! –

1

PHP中的正則表達式必須由一對字符包圍,這些字符不會在正則表達式本身中出現(並且如果它們可以使用反斜線進行轉義)。

您使用的字符是通過第一個字符定義的 - 您的情況爲(。但是在正則表達式中,括號已經有了特殊的含義。

你應該是最常用的分隔符/(斜線)附上正則表達式,如:

$between = preg_match(sprintf('/(.*)%s(.*)/', preg_quote($check)), _allbetween($coords1, $coords2)); 
相關問題