Regex忽略(如果存在)并继续


Regex ignore if exist and continue

我在php中使用regex在这两个例子中,我将匹配匹配

示例1:

Nom: Mr TO MATCH 

示例2:

Nom: Mme TO MATCH 

示例3:

Nom: TO MATCH 

我正在使用Regex:

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

它只适用于示例1和2,但不适用于第三个

如何告诉Regex忽略Mr或Mme(如果存在)并继续?

向致以最良好的问候

您需要将非捕获组设置为可选组;在令牌CCD_ 3之后将CCD_ 1改变为CCD_。

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

或者,您可以排除第二个's,并对返回的匹配结果执行trim()

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