给定字符串为:
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)
详细信息
\b
- 单词边界p
-p
或P
(由于re.I
)\B
- 非单词边界(下一个字符必须是单词字符)(?=[^\W\d_])
- 正向前瞻,要求任何字母立即出现在当前位置的右侧。
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/