是否使用动态字符串匹配从python文件中删除字符串节?

是否使用动态字符串匹配从python文件中删除字符串节?,python,regex,python-3.x,file-io,string-matching,Python,Regex,Python 3.x,File Io,String Matching,嗨,我有一个大的xml(见结尾)文件,它每次都是动态生成的。 所以我想做的是删除行的一个特定部分,但事情是看到以下示例: 从大xml文件中,我需要通过python删除此特定部分: <p:modifyVerifier cryptProviderType="rsaAES" cryptAlgorithmClass="hash" cryptAlgorithmType="typeAny" cryptAlgorithmSid="14" spinCount="100000" saltData="B8Oq

嗨,我有一个大的xml(见结尾)文件,它每次都是动态生成的。 所以我想做的是删除行的一个特定部分,但事情是看到以下示例: 从大xml文件中,我需要通过python删除此特定部分:

<p:modifyVerifier cryptProviderType="rsaAES" cryptAlgorithmClass="hash" cryptAlgorithmType="typeAny" cryptAlgorithmSid="14" spinCount="100000" saltData="B8OqF9PY5YtJrJhHXdG2rg=="
 hashData="28wWrnLt7bZyEQJkDW3eIf0gkY8cGlJtMcy0fr4VoBQREbp2gg4l8d7H3vzTx8F3KsGCxys8pGz/n0lv+G9XOg=="/>

但是这里hashData和saltData每次都会更改,所以硬编码字符串匹配方法不起作用

<p:modifyVerifier cryptProviderType="rsaAES" cryptAlgorithmClass="hash" cryptAlgorithmType="typeAny" cryptAlgorithmSid="14" spinCount="100000" saltData="9cRceofvEcHNy86qpf/jaA=="
 hashData="CWQjhCx80vjXRgWTJZCylIHIghBgLpWkcSlcBOZ8dNu5bMdqSCRoW0gt/8mM0jRN429HRrA+Ix4TRtAtQtrTag=="/>

而且这不是一条不同的线,也就是说它是没有空格的连接线。 例如,字符串前后有更多数据,没有任何空格示例:

</p:defaultTextStyle><p:modifyVerifier cryptProviderType="rsaAES" cryptAlgorithmClass="hash" cryptAlgorithmType="typeAny" cryptAlgorithmSid="14" spinCount="100000" saltData="B8OqF9PY5YtJrJhHXdG2rg==" hashData="28wWrnLt7bZyEQJkDW3eIf0gkY8cGlJtMcy0fr4VoBQREbp2gg4l8d7H3vzTx8F3KsGCxys8pGz/n0lv+G9XOg=="/><p:extLst>


请注意
前面没有空格的
这是我通过在redit上询问r/regex找到的一种方法。
这是我需要使用的正则表达式:

regex=r“]+>”

因此,代码将被删除

重新导入
file=open(“my_file.xml”、“r”)
s=file.read()
file.close()文件
新的_s=re.sub(r“]+>”,'',s)
file1=open(“new_file.xml”,“w+”)
文件1.写入(新)
file1.close()

注意,我曾经格式化过您的XML。它是另一种流行的解析工具。请注意,一个快速而肮脏的正则表达式可以完成这项工作(我已经为YAML文件完成了这项工作),但这就是问题所在。它可以用作BeautifulSoup的后端,也可以完全独立使用。它可以解析HTML,甚至还有一个更专门的lxml.HTML模块。现在我已经看到了XPath的光芒,我再也回不去了。是的,所有这些都很棒,但我仍然不知道在哪里,如何匹配动态变化的字符串,因为所有库都在一对一的硬编码基础上搜索!