尝试在python中匹配字符串中两个字符系列中的第一个

时间:2016-02-18 06:43:25

标签: python regex

尝试匹配字符串中由噪声字符分隔的“foo”或“bar”的第一个实例,例如“basdldfnmewoor”,它应该首先与'bar'匹配,重点强调:“basdldFnmewOOr”

保证包含“foo”或“bar”中的一个或两个,所有垃圾字符都是[a-z]

这是我的正则表达式/函数。

def first_foobar(mystring):
    foo = re.search("\w*?(f)\w*?(o)\w*?(o)|\w*?(b)\w*?(a)\w*?(r)",mystring)
    if foo.group(1) == "f":
        return("foo")
    else:
        return("bar")

我在这里做错了什么?是否有更多的pythonic方式来做到这一点?它似乎永远不会匹配|

之后的第二个正则表达式

1 个答案:

答案 0 :(得分:1)

def first_foobar(mystring):
    foo = re.search("\w*?(f)\w*?(o)\w*?(o)|\w*?(b)\w*?(a)\w*?(r)",mystring)
    if foo.group(1) == "f":
        return("foo")
    elif foo.group(4) == "b":
        return("bar")

b中的bar将位于4th群组