首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配字符串和特殊字符的正则表达式

匹配字符串和特殊字符的正则表达式
EN

Stack Overflow用户
提问于 2022-05-12 19:25:44
回答 1查看 926关注 0票数 0

我是新的正则表达式,我想知道如何生成一个模式的字母,包括特殊字符和大写字母从3个字母以上。

假设我有一个这样的字符串:

代码语言:javascript
复制
my_string = 'Syrians/NORP, Turkish/NORP, Turkish/NORP, Turkish/NORP, the last 2 , 3 years/DATE, Turkey/LOC'

我试过的是:

代码语言:javascript
复制
my_new_string = re.findall('[\w+\,]+/[A-Z]{4}', my_string)
#result
['Syrians/NORP', 'Turkish/NORP', 'Turkish/NORP', 'Turkish/NORP', 'years/DATE']

预期结果:

代码语言:javascript
复制
['Syrians/NORP', 'Turkish/NORP', 'Turkish/NORP', 'Turkish/NORP', 'the last 2 , 3 years/DATE', 'Turkey/LOC']

我还与大写字母从3或更高的模式。

你能提出一个好的解决方案吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-12 19:32:31

代码语言:javascript
复制
>>> re.findall(r'\w[\w, ]+/[A-Z]{3,4}', my_string)
['Syrians/NORP', 'Turkish/NORP', 'Turkish/NORP', 'Turkish/NORP', 'the last 2 , 3 years/DATE', 'Turkey/LOC']

只需在字符类中添加空间(在\w之后不需要“+”),范围从3到4以匹配"LOC“(或任何您需要的范围)。从一个白体开始,以避免匹配前导空格(这也与_匹配,但这里没有问题)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72221125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档