我目前正在尝试使用regex匹配像mexico 1-2这样的短语,它在使用regexpal测试regex时匹配,但是在Python中没有使用re匹配。你知道吗
我的正则表达式是:
regex = '(mexico[\s]*\d[\s]*[-][\s]*\d[\s]*cameroon)|(mexico[\s]*\d[\s]*cameroon[\s]\d)|(mexico[\s]*\d[\s]*[-][\s]*cameroon[\s]*\d)|(cameroon[\s]*\d[\s]*[-][\s]*\d[\s]*mexico)|(cameroon[\s]*\d[\s]*mexico[\s]\d)|(cameroon[\s]*\d[\s]*[-][\s]*mexico[\s]*\d)'
我的测试短语是:
testphrase = RT @remitouja: @TheJUMPsociety cameroon 1 - 1 mexico #winecup #WorldCup"
我成功地在regexpal中进行了匹配,但没有在python中进行匹配,但是testphrase没有进行匹配。但是以下两种语言都匹配:
cameroon 1 - 1 mexico #winecup #WorldCup
使用
if re.match(regex, testtweet) is not None:
print "Is true"
测试
你需要使用^{} 。你知道吗
您不匹配是因为
re.match
默认情况下将正则表达式锚定在字符串的开头,就像您的正则表达式是^(mexico....
(etc):其次,在python regex字符串前面加上
r
是一个好习惯:接下来,您不需要将
-
放在方括号之间,如果它是单独的,则不需要放在任何其他字符之间。而且有很多组可能是少数,所以我认为去掉捕获组就足够了:相关问题 更多 >
编程相关推荐