如何替换子字符串,比如说以大写字母开头的单词,以及该子字符串的长度,也许使用正则表达式。
例如:
使用正则表达式 "\b[A-Z]+[a-z]*\b"
"He got to go to New York"
应该改成这样:
"2 got to go to 3 4"
我使用它的实际场景有点不同,但我认为那个场景更清晰。
最佳答案
您可以使用 re.sub
为此,它接受一个可调用对象。每次发现模式的非重叠出现时,都会使用匹配对象调用该可调用对象。
>>> s = "He got to go to New York"
>>> re.sub(r'\b([A-Z][a-z]*)\b', lambda m: str(len(m.group(1))), s)
'2 got to go to 3 4'
关于python - 用每个子字符串的长度替换python中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27367834/