Regext对尖括号进行编码,但忽略xml标记中使用的括号
本文关键字:xml 编码 Regext | 更新日期: 2023-09-27 18:28:19
如何使用正则表达式创建一个对所有左尖括号<
到<
进行编码的正则表达式。正则表达式需要忽略xml标记中使用的所有<
和>
符号。
例如:
<test> test < test </test>
应转换为
<test> test < test </test>
所以我基本上尽量避免对所有有闭合直角括号的<
进行编码。
注意:我注意到XMLDocument.LoadXml(string)
方法已经对所有>进行了编码,这些>不是xml标记中使用的左括号和右括号对的一部分。所以我不关心编码这些尖括号
任何正则表达式解决方案都可能是不可靠的,因为根据定义,格式错误的输入可能是不规则的。一个快速而肮脏的正则表达式,仅当最近的尖括号不是闭括号是时才匹配<
<(?![^<>]*>)
但我可以想象在各种情况下(注释、CDATA部分、属性值中的字符串),这种琐碎的逻辑可能会失败。
在regex101.com上进行实时测试。