正则表达式匹配所有内容,直到找到2个大写字符?

时间:2013-12-21 10:22:06

标签: php regex

到目前为止,我有这个

(?:(?![A-Z]{2,}).)*

匹配所有内容,直到HTTPHEADER,但我希望它在看到HttpHeader时停止

怎么做?

所以,如果我有像Http is an HttpHeader

这样的字符串

它应匹配Http is an

3 个答案:

答案 0 :(得分:0)

你也许可以用这个:

^(?:(?!(?:\S*[A-Z]){2}).)+

regex101 demo

只有当一个单词有两个大写字符时,

(?:\S*[A-Z]){2}才会匹配。

由于这是一个负面的预测,只有在前面找到一个带有两个大写字符的单词时,匹配才会停止。

答案 1 :(得分:0)

使用杰瑞的建议,这种模式更有效率 ^.*(?=\b(?:[^\sA-Z]*[A-Z]){2}) Demo

答案 2 :(得分:0)

(.*?(?=[A-Z]\S*[A-Z]))

为什么我们要努力?! Live demo