正则表达式:\ B \ P [A-Z] + \ b

时间:2016-02-07 17:05:54

标签: regex

这个有点奇怪。

我认为这一点REGEX - >>

\b\p[A-Z]+\b

将捕获所有大写文本。

确实如此。

它也捕获所有大写的SINGLE字符!!

嗯?

所以“A”也会陷入其中......不应该。我如何纠正这个???

REGEX显然是关闭的。我要么需要添加一个负向的前瞻(我以前从未做过)或者我需要添加一个嵌套的条件来处理这个问题,再次超出我当前的技能组合。

2 个答案:

答案 0 :(得分:6)

如果您的正则表达式引擎支持{min,max} quantifier,请使用:\b[A-Z]{2,}\b

否则您可以匹配2个或更多字符,例如:\b[A-Z][A-Z]+\b

答案 1 :(得分:0)

我建议像这样的正则表达式:

/[A-Z]{2,}/

您可以看到哪些匹配here

链接上给出了一个很好的解释。但是,[A-Z]会捕获所有大写字母,{2,}会添加“2或更多”的约束(说实话,“从2到无穷大”)。

更新:如评论中所述并在下面的答案中显示,我忘记提及\b约束,以便仅匹配单词而不匹配单词的不同部分。请比较thisthis