2014-10-30 73 views
-3

這是我第一次嘗試PHP中的正則表達式。我想在PHP中使用正則表達式來匹配包含兩組單詞的句子。我已經測試過它,但它不起作用警告:preg_match():PHP中的未知修飾符

$regex= (red|green|round|sweet)[^.]*(apple|apples)  
$sentence = "I have two red apples." 

if(preg_match($regex, $sentence)) 
{ 
    echo 'MATCH!!!'; 
} else { 
    echo 'No MATCH!!!'; 
} 

我在PHP中收到錯誤消息。

Warning: preg_match(): Unknown modifier [ 
+4

'$正則表達式= 「/(紅色|綠色|輪|甜)[^] *(蘋果|蘋果)/」;' - 另外,如果你測試你說你貼什麼,應該有拋出一個解析錯誤開始。 – 2014-10-30 02:51:18

+0

@ Fred-ii-我測試了正則表達式,它的工作原理。只是不在PHP中。由於某些原因,它抱怨[] – Cryssie 2014-10-30 02:53:59

+0

您發佈的問題在兩行中缺少分號,缺少第一個引號和標識符。我測試和工作。 – 2014-10-30 02:55:01

回答

1

正如我所說的,這是經過測試和工作的,您在第一行省略了引號和標識符,並在兩行中​​省略了分號。

<?php 
$regex= "/(red|green|round|sweet)[^.]*(apple|apples)/"; 
$sentence = "I have two red apples."; 

if(preg_match($regex, $sentence)) 
{ 
    echo 'MATCH!!!'; 
} else { 
    echo 'No MATCH!!!'; 
} 
+0

謝謝。我分別測試了正則表達式。我並不認爲它所需要的只是前面和後面的「/」。 – Cryssie 2014-10-30 02:59:27

+0

@Cryssie不客氣Cryssie。通過PHP執行時,需要'/'標識符。 – 2014-10-30 02:59:48

2

PHP的正則表達式必須分隔字符。

$regex = '/(red|green|round|sweet)[^.]*(apple|apples)/'; 

/在這種情況下是單獨的字符。

相關問題