问题起源:
做关键词统计分析的时候,发现re方法与字符串的find方法结果不一样,如图所示:
s1 = "ddddtfeth"
s2 = "(eth)"
res = re.search(s2,s1)
if res:
print("re",res.group())
else:
print("re false")
print("find",s1.find(s2))
re eth
find -1
实验一、
s1 = "ddddtfeth"
s2 = "\(eth\)"
res = re.search(s2,s1)
if res:
print("re",res.group())
else:
print("re false")
print("find",s1.find(s2))
re false
find -1
实验二、
s1 = "ddddtf(eth)"
s2 = "\(eth\)"
res = re.search(s2,s1)
if res:
print("re",res.group())
else:
print("re false")
print("find",s1.find(s2))
re (eth)
find -1
这里就足以说明,re处理匹配字符串时,会将括号变成正则表达式中的特殊字符。真正寻找的是eth,加上转义符后,就会真正搜索(ETH)字符串。