0
点赞
收藏
分享

微信扫一扫

re.search() 中pattern 传入的是 变量名时

以沫的窝 2022-01-06 阅读 52
python

在使用 re.search() 进行字符串查找,当 pattern 传入的是一个变量名时,re.search() 不起作用了,代码如下:

import re
str_1 = 'system.out.print();'
str_2 = 'system.out.print()'
str_ = 'public void main() { system.out.print(); }'
t1 = re.search(str_1,str_)  # 此时返回的是 None
t2 = re.search(str_2,str_)  # 返回的不是None
print(t2)
# None
print(t1)
# None

原因是: str_1 当中 存在 (),而 () 在正则表达式当中有着特殊的含义,在进行转义之前,它不是一个str 类型的字符,所以在这里 t1 的返回值为None, 而 t2 却能正常的匹配。

即然上述方法不起作用,就将其换了一种写法

str_1 = 'system.out.print();'
str_ = 'public void main() { system.out.print(); }'
if str_1 in str_:
   # 给出自己的逻辑代码
t2 = str_.replace(str_1,replace_str)  # 进行替换
举报

相关推荐

0 条评论