Skip to main content
 首页 » 编程设计

c#之特定标签及其内容的正则表达式,按标签名称分组

2024年02月03日32bonelee

这是输入(html,不是 xml):

... html content ... 
<tag1> content for tag 1 </tag1> 
<tag2> content for tag 2 </tag2> 
<tag3> content for tag 3 </tag3> 
... html content ... 

我想得到 3 场比赛,每场有两组。第一组包含标签的名称,第二组包含标签的内部文本。就这三个标签,所以它不需要通用。

换句话说:

match.Groups["name"] would be "tag1" 
match.Groups["value"] would be "content for tag 2" 

有什么想法吗?

请您参考如下方法:

我不明白您为什么要为此使用匹配组名称。

这是一个正则表达式,可以将标签名称和标签内容匹配到带编号的子匹配项中。

<(tag1|tag2|tag3)>(.*?)</$1> 

这是一个带有 .NET 风格组名的变体

<(?'name'tag1|tag2|tag3)>(?'value'.*?)</\k'name'>. 

编辑

正则表达式根据问题作者的澄清进行了调整。