Python正则表达式移除字符串:q=及后续内容问题求助
解决正则移除":q="及后续文本的问题
你的问题出在正则表达式的匹配范围上:你用的r':q=.?'里,.?仅会匹配0个或1个任意字符,所以只能删掉:q=本身或者:q=加后面一个字符,没法覆盖后续所有内容。
要移除从:q=开始到字符串末尾的所有内容,把正则改成r':q=.*'就行:
.*表示匹配任意数量(0到无穷)的任意字符(默认不包含换行),会直接匹配到字符串结尾。
修改后的代码:
import re string = ":example1:q=dfgghp-yoirjl78/-" print(string) x = re.sub(r':q=.*','', string) print(x) # 输出: :example1
如果你的字符串里包含换行,需要加上re.DOTALL标志,让.能匹配换行符:
x = re.sub(r':q=.*','', string, flags=re.DOTALL)
内容的提问来源于stack exchange,提问作者Joao Beca
相关产品推荐
相关产品推荐

