python - 如何替换字符串中的第一个字母

标签 python regex

给定字符串为:

s = "python is programming language p"

我想要得到:

s = "2ython is 2rogramming language p"

所以,我想替换所有字母“P/p”,但前提是单词以它开头。

我尝试过这样的事情:

re.sub(r'(^p)*', r'/', string), but it didn't help

最佳答案

您可以使用

re.sub(r'\bp\B', '2', s, flags=re.I)

请参阅regex demo .

如果您需要确保p后有一个字母,请使用

re.sub(r'\bp(?=[^\W\d_])', '2', s, flags=re.I)

参见another regex demo .

详细信息

  • \b - 单词边界
  • p - pP(由于 re.I)
  • \B - 非单词边界(下一个字符必须是单词字符)
  • (?=[^\W\d_]) - 正向前瞻,要求任何字母立即出现在当前位置的右侧。

Python demo :

import re
s = "python is programming language p"
print(re.sub(r'\bp(?=[^\W\d_])', '2', s, flags=re.I))
# => 2ython is 2rogramming language p
print(re.sub(r'\bp\B', '2', s, flags=re.I))
# => 2ython is 2rogramming language p

关于python - 如何替换字符串中的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54793168/

相关文章:

python - 如何将 Python virtualenv 移动到不同的系统(计算机)并使用站点包中存在的包

python - scipyquad 仅使用 1 个分割并给出错误的结果

正则表达式 - 如何匹配除特定模式之外的所有内容

javascript - 需要修改现有正则表达式搜索扩展的帮助

regex - 如何通过字符和单词数检测字符串中是否包含印地文(devnagri)

python - 使用 Python 在 Mac OS X 中查找当前事件窗口

python - 否定 fnmatch 模式

python - 如何获取python中函数内部定义的所有局部变量?

Java正则表达式从字符串中删除匹配项

替换名字中的小写字母,而不是姓氏