拆分列表并使用相同的分隔符重新加入

Bet*_*cay 5 python string

请使用以下字符串:

"Hello,world,how-are you?h"
Run Code Online (Sandbox Code Playgroud)

如果我要使用以下方法拆分:

import re
x = re.split("[^a-zA-Z]", string)
Run Code Online (Sandbox Code Playgroud)

我会得到:

["Hello","world","how","are","you","h"]
Run Code Online (Sandbox Code Playgroud)

然后,对于新列表的每个元素,我将运行一个函数,例如:

y = map(str.upper, x)
Run Code Online (Sandbox Code Playgroud)

我怎么能用原来的分隔符重新加入呢?在上面的示例中,重新加入过程将导致:

"HELLO,WORLD,HOW-ARE-YOU?H"
Run Code Online (Sandbox Code Playgroud)

hjp*_*r92 4

改用re.sub

import re
def change(m):
  return str.upper(m.group(0))
x = re.sub("[a-zA-Z]", change, string)
Run Code Online (Sandbox Code Playgroud)

  • @BetaDecay 我不久前正在读这个问题:P。无论如何,您应该知道“\w”也包含“_”字符。 (2认同)