正则表达式在两个单词之间得到文本部分

时间:2014-12-11 12:58:13

标签: php regex

我需要在Lorem之间获取所有文字,直到最后一次出现CEP代码为止。 我刚刚第一次出现,但有些段落有两个CEP代码。

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
proident, sunt in culpa qui officia deserunt CEP 142802/AA, mollit anim id est laborum CEP 13342802/AA.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
proident, sunt in culpa qui officia deserunt CEP 11123/AA

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
proident, sunt in culpa qui officia deserunt CEP 2223/AA

Se在这里工作的例子: https://regex101.com/r/eZ0yP4/2

谢谢!

2 个答案:

答案 0 :(得分:2)

使用如下所示的正向前瞻断言。

(?s)Lorem.*?CEP \d+\/[A-B]{2}(?=\.?(?:\n\n|$))

DEMO

(?s)Lorem(?:(?!\n\n).)*CEP \d+\/[A-B]{2}

(?:(?!\n\n).)*匹配任何字符,但不匹配\n\n零次或多次。 \n\n代表一个空行。 (?s) DOTALL修饰符,它使正则表达式中的点匹配偶数换行符。

DEMO

答案 1 :(得分:0)

Lorem.*CEP \d+\/[AB]{2}

试试这个。看看演示。

https://regex101.com/r/eZ0yP4/3