2024-10-01 07:39:48 发布
网友
我只希望第二个p被k替换。在
p
k
string="paper" d=re.sub('[^p]p','k',string) print d
这是给我返回pker。在
pker
我不知道为什么a也被替换了。在
a
您可以使用反向查找并仅指定要发生的单个替换:
>>> import re >>> s = 'paper' >>> re.sub('(?<!^)p', 'k', s, 1) 'paker'
但如果没有正则表达式,您也可以这样做:
我一直在努力让这个词在任何单词的第一个字母上起作用,但没有具体说明:
re.sub(r'(\w)(?=\w*\1\b)', 'k', s[::-1])[::-1]
它需要一个Python不支持的可变长度lookbehind,因此为了克服这个问题,我反转字符串,使用可变长度的lookahead,然后反转结果:
对于一个句子,它使用每个单词的第一个字母:
>>> s = 'arabia bababooie paper'; >>> re.sub(r'(\w)(?=\w*\1\b)', 'k', s[::-1])[::-1] 'arkbik bakakooie paker'
尝试这样做,使用捕获组和反向引用来捕获第二个^{之前的所有以及第二个^{之后的所有:
re.sub(r'(.+)p(.+)', r'\1k\2', string) => 'paker'
您可以使用反向查找并仅指定要发生的单个替换:
但如果没有正则表达式,您也可以这样做:
^{pr2}$我一直在努力让这个词在任何单词的第一个字母上起作用,但没有具体说明:
它需要一个Python不支持的可变长度lookbehind,因此为了克服这个问题,我反转字符串,使用可变长度的lookahead,然后反转结果:
^{pr2}$对于一个句子,它使用每个单词的第一个字母:
尝试这样做,使用捕获组和反向引用来捕获第二个^{之前的所有以及第二个^{之后的所有:
相关问题 更多 >
编程相关推荐