仅用于捕获大写匹配的正则表达式

时间:2016-01-04 04:20:29

标签: python regex

我需要编写一个正则表达式,只能使用大写字母和撇号来捕获主题标签。

例如,"#([A-Z'] +)"将抓住"#IS"来自以下示例:

#IS your glass half-full or half-empty?

但不幸的是,我们也会抓住###I"在这个例子中

#Is your glass half-full or half-empty?

我试过这个:"#([A-Z] + [^ a-z] +)"但它抓住了#34;#II"

#IIs your glass half-full or half-empty?

我使用python,还有其他聪明的方法来解决这个问题,但我更喜欢正则表达式解决方案

3 个答案:

答案 0 :(得分:1)

使用\b表示单词边界。然后,只会匹配以#开头且可能包含'的全部大写单词:

"((\s|^)#[A-Z']+\b)"

答案 1 :(得分:0)

这可能对您有所帮助

^[A-Z]+$

答案 2 :(得分:0)

这将在输入中找到所有大写字母

([A-Z])\w+