正则表达式匹配从最后一次出现的键到另一个键的所有内容

时间:2014-08-07 16:50:54

标签: php regex preg-match

我有这样的文字:

  

OLD>> AAAAAA AA-BB dssd sdg Ad sdg ds Adsd gs AAA sdg dsg GGGGGG GG sdgds AAAA GF-S sdg。 SDG。 - 4353 ds gsd sdg GDS GDG 343 33 sdgsg sdgs DGSAGG DSDG S DG

新文字

  

AAAAAA AA-BB dssd sdg Ad sdg ds Adsd gs AAA sdg dsg GGGGGG GG sdgds AAAA GF-S sdg。 ASDG。 AA sdg dsg - 4353 ds gsd sdg GDS GDG 343 33 sdgsg sdgs DGSAGG DSDG S DG   我想在数字前提取最后一个大写字符串,如([A-Z -]+){5,100}4353

所以在这种情况下结果应该是:

  

AAAA GF-S

我试过/([A-Z -.]+){5,100} (.+) 4353/i,但它让我第一次。

感谢快速回答,我在搜索文本中进行了修改。 它应该是最后一个只有大写且长度大于5

的表达式

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

([A-Z][A-Z .-]{5,100})(?= [a-z .-]*4353)

RegEx Demo

答案 1 :(得分:1)

<强> 更新

试试这个:

.*(\b[A-Z][A-Z -.]{5,100})(?=.*4353)\K

<强> Live demo