如何在Python中匹配精确的“多个”字符串
我有要在给定字符串中搜索的确切模式的列表。目前,对于这种问题,我有一个非常糟糕的解决方案。
pat1 = re.compile('foo.tralingString')mat1 = pat1.match(mystring)
pat2 = re.compile('bar.trailingString')
mat2 = pat2.match(mystring)
if mat1 or mat2:
# Do whatever
pat = re.compile('[foo|bar].tralingString')
match = pat.match(mystring) # Doesn't work
唯一的条件是我有一个要完全匹配的字符串列表。什么是Python中最好的解决方案。
编辑:搜索模式有一些常见的尾随模式。
回答:
您可以做一个琐碎的正则表达式,将两者结合起来:
pat = re.compile('foo|bar')if pat.match(mystring):
# Do whatever
然后,您可以使用|
分隔符来扩展正则表达式以执行所需的任何操作(这意味着 或 使用正则表达式语法)
根据您最近的编辑,这应该为您完成:
pat = re.compile('(foo|bar)\\.trailingString');if pat.match(mystring):
# Do Whatever
该[]
是字符类。因此,您[foo|bar]
可以将字符串与包含的字符 进行匹配(因为该类后面没有*或+或?)。 ()
是子模式的附件。
以上是 如何在Python中匹配精确的“多个”字符串 的全部内容, 来源链接: utcz.com/qa/410478.html