如果后面有一个数字符号
char
,我如何将'*'添加到特定的char
后面的字符串中?
这是我试过但不起作用的代码:
def timesAdd(string, char):
nString = None;
if char in string:
for i in range(len(string)):
if string[i] == char:
if string[i-1].isdigit():
nString += '*' + char;
else:
nString += char;
else:
nString += string[i];
return nString;
我尝试做的是:
char
i
等于char
,则返回一个,看它是否是一个数字。char
之前添加'*',否则只需将char
添加到缓冲区为什么它不起作用,我该如何改进它?
旁注,我没有尝试的另一个想法是制作一个
array of chars
,看看string[i]
是否等于array of chars
中的一个符号(array
的示例:“1234567890”)。
deceze 是对的。这段代码应该可以解决你的问题。
import re
def add_star(string, char):
pattern = r"(?<=\d)(%s)" % char
replacement = "*" + char
return re.sub(pattern, replacement, string)