我只想使用 C# 中的正则表达式删除 XML 元素标记中的“:”。
我知道解析文档是替代正则表达式的方法。但它是一个遗留项目,它使用正则表达式来替换 XML 文档内容。这不是处理 XML 文档的理想方法,但我无能为力。
我不擅长正则表达式,只是想不出一种方法来仅从元素标签而不是值中替换 ':'...
例如
<tag:name> the value with the tag http://www.example.com </tag:name>
我想仅在元素名称中将 : 替换为 _ 而不是值。所以结果应该是:
<tag_name> the value with the tag http://www.example.com </tag_name>
有什么想法吗?
谢谢!
最佳答案
这根针应该做你想做的事:
<[^>]*(:)[^>]*>
第一个模式组将在标签名称中包含 (:)。如果你想更换可以更换(<[^>]*)(:)([^>]*>)
与 $1_$3
哪里$1
和$3
是子模式。
关于C# 正则表达式仅删除元素名称中的字符,而不替换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425338/