Python正则匹配URL中首个等号后的所有等号并替换为%3D
解决方案
可以利用正则表达式的正向回顾后发断言精准匹配首个等号之后的所有等号,再通过Python的re.sub完成替换。
正则表达式说明
使用(?<==.*)=:
(?<==.*):正向回顾后发断言,确保当前匹配的=前面已经存在至少一个=(即处于首个等号之后的位置)=:匹配需要替换的目标等号
Python 代码实现
import re log_text = 'request=www.google.com/fgdsg=gfsdg=gfdsd、request_access=https://regex101.com/eawf/?=dasf' processed_text = re.sub(r'(?<==.*)=', '%3D', log_text) print(processed_text)
执行后输出:
request=www.google.com/fgdsg%3Dgfsdg%3Dgfdsd、request_access=https://regex101.com/eawf/?%3Ddasf
补充说明
如果日志中存在多个独立的key=value片段(比如用&或其他分隔符分隔),这个正则也能正常工作,会为每个片段匹配首个等号之后的所有等号。比如处理a=b=c&d=e=f,会得到a=b%3Dc&d=e%3Df。
内容的提问来源于stack exchange,提问作者Jowharah Mohammad
相关产品推荐
相关产品推荐

