python: 在字符串中检测负数
我有一些文本文件,里面有这样的行:
STRT .M -9.0: START DEPTH
我想找到负数,并把它替换成0.1。
我可以通过查找'-'来检测负数。
text.count('-')
如果文本中'-'的数量大于0,那就说明有负数。
我的问题是:我该怎么把字符串中的'-9.0'替换成0.1呢?最后,我想输出:
STRT .M 0.1: START DEPTH
3 个回答
1
正则表达式可以做到这一点:
>>> import re
>>> regex = re.compile(r' -\d+(\.\d+)?:')
>>> regex.sub(' 0.1:', 'STRT .M -9.0: START DEPTH')
'STRT .M 0.1: START DEPTH'
>>> regex.sub(' 0.1:', 'STRT .M -19.01: START DEPTH')
'STRT .M 0.1: START DEPTH'
>>> regex.sub(' 0.1:', 'STRT .M -9: START DEPTH')
'STRT .M 0.1: START DEPTH'
6
简单的解决办法是使用 .replace('-9.0','0.1')
(查看 .replace()
的文档),但我觉得你可能需要一个更灵活的解决方案,基于正则表达式:
import re
new_string = re.sub(r'-\d+\.\d+', '0.1', your_string)