re搜索字符串与find字符串不一样的结果

问题起源:

做关键词统计分析的时候,发现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)字符串。

发布了447 篇原创文章 · 获赞 153 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/ningyanggege/article/details/105203374