正则表达式匹配所有内容,直到它达到大写

时间:2013-12-22 01:29:06

标签: php regex

我从这个问题regex to match everything until it finds 2 upper case characters?

中找到了以下代码
^.*(?=\b(?:[^\sA-Z]*[A-Z]){2})

然而我的问题与OP

略有不同

我希望在以下字符串中将所有内容与大写字母匹配, 规则应匹配所有内容,直到负面外观找到2个大写字符,然后匹配中间的所有内容,从第一个大写到第二个大写字符的开头

所以我想(从示例中继续)

Http is an HttpHeader

是获取Http is an Http

代替Http is an OP在发布的帖子中获取

4 个答案:

答案 0 :(得分:0)

似乎过于复杂。给我

preg_match( '/[^A-Z]+/', $str, $res );

答案 1 :(得分:0)

preg_match('/[^A-Z]*([A-Z]{1}[^A-Z]*[A-Z]{1}[^A-Z]*)/', $str, $res);

答案 2 :(得分:0)

使用此模式^.*?(?=\b(?:[^\sA-Z]*[A-Z]){2}).+?(?=[A-Z]) Demo

答案 3 :(得分:0)

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

您可以按照上述正则表达式进行操作。那是如此简单而又快速。请在此处查看匹配的群组:Live demo