-1

我有一个下面的 xml

<ns1:Header>
<ns4:Name>Mohan</ns4:Name>
<ns4:Age>10</ns4:Age>
<ns4:Dept>CSE</ns4:Dept>
</ns1:Header>

我需要编写一个正则表达式来从 Mohan 标记中查找名称。这里的命名空间(ns4)可能会动态变化。请帮助编写一个应该在所有命名空间中工作的通用正则表达式

4

2 回答 2

2

尝试这个:

<ns\d+:Name>(.+)<

但是你真的必须使用 RegEx 吗?有更好的方法,例如 .NET 中的 System.Xml.XmlDocument 类

于 2013-04-05T12:47:45.800 回答
1

binogure 的解决方案似乎是正确的,我只会让命名空间更通用:

/<(\w+:Name)>(\w+)<\/\1>/

或者,如果命名空间是可选的:

/<((?:\w+)?Name)>(\w+)(\/\1>/

该名称将在第二个捕获组中。

于 2013-04-05T12:48:15.220 回答