正则表达式只匹配第一个标签

时间:2012-07-12 15:41:03

标签: c# java xml regex parsing

我正在尝试编写一个正则表达式来查找一个长xml字符串中的选择,然后拉出它找到的标记的第一个实例。

我当前的代码(提取每场比赛):(<action>(.*?)</action>)

示例代码:

<request guid="58004a1e-0c32-4002-a101-59fc28af5836">
<action>Sample/Action</action><date>"7/12/12"</date>

我尝试使用多种方法找到匹配第一个实例并忽略其他所有内容,检查并确保在当前匹配之前没有匹配,将其设置为完全匹配,等等但是它们都返回两个火柴。我无法设置正则表达式来查找特定的前导或尾随标记,因为它们可以更改。

1 个答案:

答案 0 :(得分:1)

简单回答:停止。

你问的是错误的问题,因为在确定正则表达式是否是解决问题的合适方法之前,你已经决定使用正则表达式来解决问题。

C#和Java都有XML解析库,你最好不要使用其中的一个,而不是试图使用正则表达式复制它们的功能,这个任务通常是不可能的,因为XML不是常规的语言。

另请参阅this answer,尽管该问题与HTML有关。