我正在尝试捕获一串大写字符,但要忽略大写字母后面是否有小写字母
例如
对于字符串ABC ABC ABC ABc
,它应该捕获ABC ABC ABC
只是因为最后一个AB之后有一个小写字母'c'
我尝试了([A-Z ]+)
来捕获ABC ABC ABC AB
,
在这种情况下,如何添加否定前瞻?
答案 0 :(得分:2)
尝试将[A-Z]\b
放在末尾,以确保匹配在单词右侧的单词边界处结束,也不要匹配不必要的空格。请注意,这里不需要捕获组,您可以将其完全排除。
[A-Z ]+[A-Z]\b
https://regex101.com/r/j8Arzu/13
如果大写字母子字符串可能以空格开头,则在字符串开头使用相同的技巧-以\b[A-Z]
开头:
\b[A-Z][A-Z ]*[A-Z]\b
如果您另外 只匹配一个字符,则将第二个和第三个字符集[A-Z ]*[A-Z]
放入可选组:
\b[A-Z](?:[A-Z ]*[A-Z])?\b
答案 1 :(得分:1)
答案 2 :(得分:1)
要仅捕获连续的大写字母,可以尝试以下正则表达式:/\b[A-Z]+\b/g