簡體   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