我找不到如何处理正则表达式,这里有一个例子:
string = "red\\/banana 36 monkey\\/apple 14 red\\/apple 23 red\\/horse 56 bull\\/red 67 monkey\\/red 45 bull\\/shark 89"
我想用 re.match.group() 做一个正则表达式,它只考虑像 red/xxxx 和像 xxxx/red 这样的那些,并且只对 xxxx 名称进行分组,而不是对:
我想要做:
print(match.group("beginningwithred") + " " + match.group("number")
并获得:
banana 36
apple 23
horse 56
然后做:
print(match.group("endingwithred") + " " + match.group("number")
并获得:
bull 67
monkey 45
我当前的代码如下:
iterator = regex.finditer(string)
for match in iterator:
regex = re.compile('red\\\\\\\\/(?P<beginningwithred>banana|apple|horse)|(?P<endingwithred>bull|monkey)\\\\\\\\/red (?P<number>\d\d)')
但它不起作用,我不能使用 | 在组和 python HOWTO 之间没有帮助。我尝试使用{ }也包括整个两个表达式,但它也不起作用。它一定不是很复杂,但我无法找出问题所在。