我想在2个xml节点之间更改值-SET_STATUS
filedata是该xml行所在的文本。

<ws:genericAction>SET_STATUS</ws:genericAction>


为此写了正则表达式:

re.sub(r'<\/ws:genericAction>\s*(.*)(?=\n<\/ws:genericAction>)', "New Text", filedata, flags=re.IGNORECASE)


所有程序:

with open("createUser.txt", 'r') as file:
    filedata = file.read()
re.sub(r'<\/ws:genericAction>\s*(.*)(?=\n<\/ws:genericAction>)', "New Text", filedata, flags=re.IGNORECASE)
with open("createUser.txt", 'w') as file:
    file.write(filedata)


谢谢你的帮助

最佳答案

re.sub()不会修改字符串,而是在替换后返回该字符串:

filedata = re.sub(r'(<ws:genericAction>)([^<>]+)(?=<\/ws:genericAction>)', "\\1New Text", filedata, flags=re.IGNORECASE)


https://docs.python.org/3/library/re.html#re.sub

关于python - Python-使用正则表达式更新2个节点之间的xml值-re.sub无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44034052/

10-10 10:58