我知道以前有人问过这个问题,但今天早些时候我在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'
我几乎可以肯定它与点无关,因为我有其他类似结构的变量,而且工作得很好。。你知道吗
我想知道为什么会发生这种情况,或者用另一种方法来确定一个字符串是否在另一个字符串中。你知道吗
谢谢你的建议
试试这个。你知道吗
点
'.'
用于匹配任何字符。所以你的模式比它应该匹配的多。你知道吗您可以通过转义点来正确格式化模式。你知道吗
或者,由于这是一个简单的模式,您可以使用
in
来检查text1
是否包含在text2
点和空格
'. '
,在regex中等价于\W\W
,不被认为是单词边界\b
(^\w|\w$|\W\w|\w\W)
的一部分。使用负锁定(?<!)(?!)
。你知道吗正则表达式
相关问题 更多 >
编程相关推荐