如何在不替换其他相同字母的情况下替换某个地方的某个字母?例如:
text = "I need help. I need 5.4 dollar."
我试过了:
a = re.compile('D(.)')
print(a.sub('n',text))
但是,输出是
"I need heln I need 5.4 dollan"
我怎样才能获得输出
"I need helpn I need 5.4 dollarn"
编写有效的正则表达式首先要制定你真正需要的东西。在您的情况下,它看起来像你想:
“用换行符号替换所有句号,除非句号是数字的一部分。”
而为了让这更精确,定义是什么意思,一个周期是一个数字的一部分:它可能意味着它是直接通过一个数字后面,以便它匹配5.4,而且.4在The average score of .4 was low.,但不是4.在She only counted a total of 4.
“用换行符号替换所有句号,除非句号后面紧跟一个数字。”
import re
text = '"I have .5 dollar. I need 5.4 dollar. But they only gave me 3."'
expression = re.compile(r'.(?!d)')
print(expression.sub('n', text))
你的例子D(.)匹配的是:“匹配一个不是数字的单个字符,后跟一个文字.”,这不是你想要替换的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。