非常感谢咖啡研磨机几个小时前向我提出问题。现在我是成员(member)了,我想稍微改一下这个问题。
使用正则表达式和 python 来说明词首“s”转换为“$”以及其余“s”转换为“5”的最佳方式是什么?
我尝试在下面的代码中执行此操作,但结果是错误的。 's' 转换的一般规则是贪婪的,并且不会使词首 's' 规则发挥作用。 我将不胜感激任何帮助。谢谢。
text = 'sassy'
for (regexp,subst) in [ (r's', '5'),(r'^s', '$') ]:
text = re.sub(regexp,subst,text)
...
text
5A55y
最佳答案
你只是不够具体。您需要对第一个断言进行非零后行断言。
>>> text = 'sassy'
>>> for (regexp,subst) in [ (r'(?<=.)s', '5'),(r'^s', '$') ]:
... text = re.sub(regexp,subst,text)
...
>>> text
'$a55y'
那个,或者改变顺序。
当您的一个替补进入另一场比赛时,所有投注均无效。
关于python - 根据单词中的位置将相同的字符转换为不同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6149464/