Python:如何替换第 i 个到第 j 个匹配项的字符?

标签 python regex

例如,如果我有:

"+----+----+---+---+--+"

是否可以将第二到第四个+替换成-

如果我有

"+----+----+---+---+--+"

我想拥有

"+-----------------+--+"

我必须将第 2 到第 4 个 + 替换为 -。是否可以通过正则表达式实现这一点?以及如何?

最佳答案

如果您可以假设第一个字符始终是 +:

string = '+' + re.sub(r'\+', r'-', string[1:], count=3)

删除字符串的第一个字符和 sub() 前三个 + 字符,然后重新添加初始 +

如果你不能假设第一个+是字符串的第一个字符,先找到它:

prefix = string.index('+') + 1
string = string[:prefix] + re.sub(r'\+', r'-', string[prefix:], count=3)

关于Python:如何替换第 i 个到第 j 个匹配项的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46118886/

相关文章:

javascript - JS RegEx 替换非捕获组?

python - 字符串中替换的条件

java - 使用正则表达式分割()java

jquery - 正则表达式 jquery 验证

python - Django 中帐户/个人资料的 url

python - 如何找出列表中以元音开头的单词?

python - 在 Pandas 数据框中查找嵌套列

python - 使用 Python 正则表达式从字符串中提取门牌号和街道名称

python - 如何从 QComboBox 的弹出窗口中删除白色背景(顶部和底部)?

python - 用于语音到文本的 Python 语音处理库