[英]python string replace unknown number
我是PYTHON的初学者,而对regex没用,并且正在努力用新数字替换文件中的未知数字。 我已经通过python查看了如何使用tos和re的示例,但在如何创建表达式方面仍然没有任何进展。
# myfile.txt
Some text
More text
Option "BlankTime" "15"
more text
我想用另一个数字替换“ 15”,该行在文件中仅出现一次,但是它所在的行号是未知的,并且15的值也是未知的,并且可以是引号中包含的任何数字。
最好的方法是用python(re ??)来做,但是如果不能做到这一点,那就可以sed ??。
听起来您在寻找特定的参数( BlankTime
)。 可以使用以下sed
完成此操作:
cat myfile.txt | sed 's/\("BlankTime"\s*"\)[^"]*/\1987/'
这将搜索"BlankTime"
,并将其值替换为987
,其他所有行均保持不变。
编辑要替换文件的内容,请使用以下两步方法:
cat myfile.txt | sed 's/\("BlankTime"\s*"\)[^"]*/\1987/' > myfile.txt.tmp
mv myfile.txt.tmp myfile.txt
import re
with open("myfile.txt", "r") as myfile:
mytext = myfile.read()
pattern = re.compile(r'^(Option\s+"BlankTime"\s+")(\d+)"', re.MULTILINE)
mystr = pattern.sub(r'\1REPLACED"', mytext)
with open("myfile.txt", "w") as myfile:
myfile.write(mytext)
这将立即替换文件中的所有匹配项。 我将数字放在捕获括号的情况下,以防您想在替换前对其进行处理。
myfile = open('myfile.txt', 'r')
text = myfile.read()
myfile.close()
print re.sub(r'\d+', '42', text)
\\d
匹配一个数字, +
匹配至少一个前面的模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.