捕获以下两个表达式:
str1 = "my son is 21 now"
str2 = "son is 21 now"
这两个re语句和过滤器分别捕获一个:
r1 = re.compile(".* (son)\s+(is)\s+(21) .*")
r2 = re.compile("(son)\s+(is)\s+(21) .*")
m1 = filter(r1.match, [str1, str2])
m2 = filter(r2.match, [str1, str2])
如何将r1
和r2
合并到一个重新声明中,以便两个字符串匹配?
答案 0 :(得分:1)
答案 1 :(得分:0)
只需将^
,.*
放在由管道符号分隔的组中。
r1 = re.compile(r"(?:^|.* )(son)\s+(is)\s+(21) .*")