我知道之前曾有人问过这个问题,但今天早些时候,我在SO中找到了以下代码:
import re
def findIfWordMatch(w):
return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).search
例如,如果我使用以下字符串,则在text2中找到text1时,该函数将返回一个匹配对象(否则该函数返回None):
text1 = 'DIBUJO'
text2 = 'DIBUJO B308'
因此,要知道text1是否在text2中,请执行以下操作:
if(findIfWordMatch(text1)(text2) is not None):
#doSomething()
在使用以下变量之前,它一直运行良好:
text1 = 'INT.EST.C.S.'
text2 = 'INT.EST.C.S. B308'
我几乎可以确定它与这些点无关,因为我还有其他结构相似的变量,并且工作得很好。
我想知道为什么会这样,或者用另一种方式来查找字符串是否在另一个字符串内。
谢谢建议
'INT.EST.C.S. B308'
^^
'. '
在正则表达式中等效的点和空格一起\W\W
不视为单词边界的一部分\b
(^\w|\w$|\W\w|\w\W)
。使用否定的lockahead (?<!)(?!)
。
正则表达式:(?<!\S){0}(?!\S)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句