我有一个像这样的字符串:str = "hello <abc123> python <is456> awesome"我想用其他一些字符替换括号内的字符。像上面的字符串应该给出:"hello lock python lock awesome "我试过类似的东西:ss = str.replace("\\<(.*?)\\>", 'lock')但这没有用。那么,我如何使用正则表达式来做到这一点?
3 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
你可以做一个简单的regex 替换,比如,
>>> import re
>>> str = "hello <abc123> python <is456> awesome"
>>> re.sub(r'<.*?>', 'lock', str)
'hello lock python lock awesome'
波斯汪
TA贡献1811条经验 获得超4个赞
这样做(将后视/前瞻断言与 的非贪婪匹配相结合.):
before = "hello <abc123> python <is456> awesome"
after = re.sub(r'(?<=<).+?(?=>)', 'lock', before)
print(after)
输出:
hello <lock> python <lock> awesome
如果你不想要括号,那么re.sub(r'<.+?>', 'lock', before)应该没问题。
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
>>> import re
>>> s ="hello <abc123> python <is456> awesome"
>>> re.sub('<.*?>', 'lock', s)
'hello lock python lock awesome'
添加回答
举报
0/150
提交
取消