Python:正则表达式单词匹配

时间:2015-10-13 06:31:44

标签: python regex python-2.7

我已经写过这个小小的脚本,但我无法让re.search功能正常工作。我试图只匹配确切的单词(笑话),但是elif语句不断返回打印,因为它在句子变量中找到了笑话(来自小丑)。有没有什么方法可以让它计算笑话这个词中的字母数量,所以只有当笑话是一个独立的词时它才真实?

#!/usr/bin/python
import re

sentence = 'The substantial treat shouts with the jokers'
find_emergency = re.search( r'emergency', sentence, re.M|re.I)
find_joke = re.search( r'joke', sentence, re.M|re.I)

if find_emergency :
   print 'Do you want to set this email as urgent?'
elif find_joke :  
  print "Do you want to mark this email as non-urgent?"
else :
   print "Sorry, we couldn\'t find what you were looking for ;("

2 个答案:

答案 0 :(得分:2)

find_joke = re.search( r'\bjoke\b', sentence, re.M|re.I)

使用\bword boundary

答案 1 :(得分:1)

您可以使用vks建议的单词边界方法。

或者您可以使用'in'关键字执行基本搜索。

#!/usr/bin/python
import re

sentence = 'The substantial treat shouts with the jokers'

if 'emergency' in sentence :
   print 'Do you want to set this email as urgent?'
elif 'joke' in sentence :  
  print "Do you want to mark this email as non-urgent?"
else :
   print "Sorry, we couldn\'t find what you were looking for ;("