繁体   English   中英

在python中查找并替换字符串

[英]find and replace string in python

我正在寻找使用python中的正则表达式替换文件中的字符串。 我想出的代码是

import re

s=open('C:/Users/Tamal/Desktop/py_regex_sample.txt', 'r')
re.sub(r'(\w)+\s(\w)+', r'<fname>\1</fname>\n<sname>\2</sname>', s, 0, flags=re.I)
s.close()

该文件包含两行,包含两个名称

"John Hammond
Joey Mercury"

但是它显示了一个错误。 我究竟做错了什么?

您不需要re来替换字符串。

您可以像这样使用replace()

>>> s = "This is a string."
>>> s = s.replace("This", "That")
>>> print(s)
That is a string.

现在,如果您不知道需要替换什么,则可以手动解析整个字符串或使用re查找。

您输入的是错误,因为您要将整个文件作为第三个参数传递,而re.sub()不接受。 第三个参数应该是string而不是文件。 因此,它会导致错误。

如果要进行inplace更换,则应尝试此操作

import re,fileinput

for line in fileinput.input('input_file.txt', inplace=True): 
    print(re.sub(r'(\w+)\s(\w+)', r'<fname>\1</fname>\n<sname>\2</sname>', line.strip("\n"), flags=re.I))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM