【发布时间】:2017-10-01 18:32:38
【问题描述】:
root/element1/element2[@attr1='abc']/element3[attr3='xyz']/element4/element5[attr4='pqr']/element6/element7
我想清除上述 xpath 中除 attr4 之外的所有属性。预期的输出是 - root/element1/element2/element3/element4/element5[attr4='pqr']/element6/element7
你能帮忙吗?
【问题讨论】:
-
你的正则表达式有什么问题?
-
提示:定义一个正则表达式模式,它只匹配所有属性加括号,但不匹配名称为 attr4 的属性。如果您已成功定义此正则表达式,请在调用 Regex.Replace(...) 时使用它来用空字符串 ("") 替换 xpath 中所有出现的属性...
-
这是我匹配所有属性的正则表达式 [[^]]*] 我想知道在这个模式中包含排除列表的方法..
-
如果你只想要包含
attr4的节点,那么使用 xpath ://*[@attr4='pqr']你会浪费很多时间想出一个好的正则表达式,特别是在任何 xml 字符串上。 -
你不可能有你想象的排除列表。正则表达式模式描述了与该模式匹配的连续文本序列。
标签: c# regex regex-negation regex-lookarounds regex-group