使用regex替换括号内的字符

2024-10-01 00:31:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根绳子

str="hello <abc123> python <is456> awesome"

我想用上面字符串应该给出的其他字符替换括号中的字符

"hello lock python lock awesome "

我试过这样的方法:

ss=str.replace("\\<(.*?)\\>",'lock') 

但这不管用。那么,如何使用regex实现这一点呢?你知道吗


Tags: 方法字符串lockhello字符ssreplaceregex
3条回答

你可以做一个简单的regex替换,比如

>>> import re
>>> str = "hello <abc123> python <is456> awesome"
>>> re.sub(r'<.*?>', 'lock', str)
'hello lock python lock awesome'

这样做(将lookbehind/lookahead断言与.的非贪婪匹配结合起来):

before = "hello <abc123> python <is456> awesome"
after = re.sub(r'(?<=<).+?(?=>)', 'lock', before)
print(after)

输出:

hello <lock> python <lock> awesome

如果您不需要括号,那么re.sub(r'<.+?>', 'lock', before)就可以了。你知道吗

>>> import re
>>> s ="hello <abc123> python <is456> awesome"
>>> re.sub('<.*?>', 'lock', s)
'hello lock python lock awesome'

相关问题 更多 >