2015-04-01 73 views
0

我使用正則表達式用PHP 在這兩個例子中,我將匹配以匹配正則表達式忽略如果存在和繼續

實施例1:

Nom: Mr TO MATCH 

實施例2:

Nom: Mme TO MATCH 

示例3:

Nom: TO MATCH 

我使用正則表達式:

/Nom:\s+(?:Mr|Mme)\s+(.*)/ui 

它正常工作,只爲實例1和2,但沒有爲第三一個

如何分辨正則表達式忽略先生或夫人是否存在並繼續嗎?

此致敬禮

回答

2

您需要使您的非捕獲組可選;在令牌\s後更改+*

Nom:\s+(?:Mr|Mme)?\s*(.*) 

或者你可以排除第二\s並在您返回匹配結果執行trim()

Nom:\s+(?:Mr|Mme)?(.*) 
+0

謝謝你的第一個建議像一個魅力工作;) – amorino 2015-04-01 02:40:52