用每个子字符串的长度替换python中的子字符串

2024-10-05 14:27:23 发布

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

如何用子字符串的长度替换子字符串,例如以大写字母开头的单词,可能使用regex。你知道吗

例如: 使用regex "\b[A-Z]+[a-z]*\b"

"He got to go to New York"

应转化为:

^{2}$

我使用这个的实际场景有点不同,但是我认为这个场景更清楚。你知道吗


Tags: to字符串gonew场景大写字母单词regex
2条回答

这并不是很简洁,但如果您不想使用正则表达式和lambda,您可以这样写:

string = "He got to go to New York"
string = string.split()

for word in range(len(string)):
    if string[word][0].isupper():
        string[word] = str(len(string[word]))

print(" ".join(string))

您可以使用^{}来接受可调用的。每次找到不重叠的模式时,都会使用match对象调用该可调用对象。你知道吗

>>> 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'

相关问题 更多 >