(Python)如果后面只有一个数字,我如何将一个字符添加到字符串中

问题描述 投票:0回答:1

如果后面有一个数字符号

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;

我尝试做的是:

  1. 扫描字符串的每个符号,看是否等于
    char
  2. 如果字符串中的
    i
    等于
    char
    ,则返回一个,看它是否是一个数字。
  3. 如果它是一个数字,在
    char
    之前添加'*',否则只需将
    char
    添加到缓冲区
  4. 完成后,返回缓冲区。

为什么它不起作用,我该如何改进它?

旁注,我没有尝试的另一个想法是制作一个

array of chars
,看看
string[i]
是否等于
array of chars
中的一个符号(
array
的示例:“1234567890”)。

python python-3.x integer char numbers
1个回答
0
投票

deceze 是对的。这段代码应该可以解决你的问题。

import re


def add_star(string, char):
    pattern = r"(?<=\d)(%s)" % char
    replacement = "*" + char
    return re.sub(pattern, replacement, string)
© www.soinside.com 2019 - 2024. All rights reserved.