我有一个以下xml
<ns1:Header>
<ns4:Name>Mohan</ns4:Name>
<ns4:Age>10</ns4:Age>
<ns4:Dept>CSE</ns4:Dept>
</ns1:Header>
我需要写一个正则表达式来找到Mohan的名字 标签。这里命名空间(ns4)可能会动态更改。请帮助编写一个适用于所有命名空间的通用正则表达式
答案 0 :(得分:2)
试试这个:
<ns\d+:Name>(.+)<
但你真的必须使用RegEx吗?有更好的方法,如.NET中的System.Xml.XmlDocument类
答案 1 :(得分:1)
binogure的解决方案似乎是正确的,我只会使名称空间更通用:
/<(\w+:Name)>(\w+)<\/\1>/
或者,如果名称空间是可选的:
/<((?:\w+)?Name)>(\w+)(\/\1>/
该名称将位于第二个捕获组中。