我非常感谢咖啡研磨机几个小时前向我提问。既然我是其中一员,我想稍微改一下这个问题。
使用正则表达式和python声明单词首字母's'转换为'$'并且's'的其余部分转换为'5'的最佳方式是什么?
我尝试在以下代码中执行此操作,但结果是错误的。 's'转换的一般规则是贪婪的,并没有给出单词初始的'规则发挥作用。 我很感激任何帮助。感谢。
text = 'sassy'
for (regexp,subst) in [ (r's', '5'),(r'^s', '$') ]:
text = re.sub(regexp,subst,text)
...
text
5A55y
答案 0 :(得分:2)
你只是不够具体。你需要在第一个上使用非零的lookbehind断言。
>>> text = 'sassy'
>>> for (regexp,subst) in [ (r'(?<=.)s', '5'),(r'^s', '$') ]:
... text = re.sub(regexp,subst,text)
...
>>> text
'$a55y'
那,或者改变顺序。
当你的一个替换进入另一场比赛时,所有投注都已经结束。