首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python regex,如何搜索多个字符串?

Python regex,如何搜索多个字符串?
EN

Stack Overflow用户
提问于 2015-05-21 01:31:21
回答 4查看 9.5K关注 0票数 0

我是python的新手,正在尝试使用python regex来查找任何与-匹配的字符串。例如,'type1-001''type2-001'应该匹配,但'type3-asdf001'不应该匹配。我希望能够与像[type1|type2|type3]-\d+这样的正则表达式匹配,以查找任何以type1type2type3开头,然后附加'-'和数字的字符串。此外,如果知道如何搜索任何带有'-‘和数字的大写文本,那将是很酷的。

这是我认为应该行得通的方法,但我似乎做不对……

pref_num = re.compile(r'[type1|type2]-\d+')
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-21 01:51:23

[]将匹配出现在方括号之间的任何一组字符。要对正则表达式进行分组,需要使用()。所以,我认为您的正则表达式应该是这样的:

pref_num = re.compile(r'(type1|type2)-\d+')

至于如何搜索任何附加了-和数字的大写文本,我建议:

[A-Z]+-\d+
票数 3
EN

Stack Overflow用户

发布于 2015-05-21 01:40:02

如果你只希望"type“后面的数字是可变的,那么你应该只把那些放在方括号里,如下所示:

re.compile(r'type[1|2]-\d+')
票数 2
EN

Stack Overflow用户

发布于 2015-05-21 01:39:53

您可以使用模式

'type[1-3]-[0-9]{3}'

演示

>>> import re
>>> p = 'type[1-3]-[0-9]{3}'
>>> s = 'type2-005 with some text type1-101 and then type1-asdf001'
>>> re.findall(p, s)
['type2-005', 'type1-101']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30356546

复制
相关文章

相似问题

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