在python中查找和替换字符串

2024-09-28 23:22:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python中的正则表达式替换文件中的sting。 我想出的代码是

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"

但它显示了一个错误。我做错什么了?你知道吗


Tags: 文件sample代码pyimportretxtopen
2条回答

您不需要re来替换字符串。你知道吗

您可以这样使用replace()

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

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

您的给出了一个错误,因为您将整个文件作为第三个参数传递,re.sub()不接受。第三个参数应该是string,而不是file。所以这是一个错误。你知道吗

如果你想做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))

相关问题 更多 >