Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Grok模式匹配,但结果也包含模式_Regex_Xml_Grok - Fatal编程技术网

Regex Grok模式匹配,但结果也包含模式

Regex Grok模式匹配,但结果也包含模式,regex,xml,grok,Regex,Xml,Grok,我正在使用创建一个与xml内容匹配的reg_exp 我不想解析xml,只想提取它 <xml> <balise1> </balise1> <table> <tr> <td> cas1 </td> <td> cas2 </td> </tr> <tr> <td> new </td> <td> line </td> </

我正在使用创建一个与xml内容匹配的reg_exp

我不想解析xml,只想提取它

<xml> <balise1> </balise1> <table> <tr> <td> cas1 </td> <td> cas2 </td> </tr> <tr> <td> new </td> <td> line </td> </tr> </table> </xml>
cas1-cas2新线
这是我为匹配tr标记的内容而编写的模式

(?(.*))
因此,这个正则表达式的输出给出:

{
  "content": [
    [
      "<tr> <td> cas1 </td> <td> cas2 </td> </tr> <tr> <td> new </td> <td> line </td> </tr>"
    ]
  ]
}
{
“内容”:[
[
“cas1 cas2新线”
]
]
}
当我希望它是:

{
  "content": [
    [
      "<tr> <td> cas1 </td> <td> cas2 </td> </tr>"
    ]
  ]
}
{
“内容”:[
[
“cas1 cas2”
]
]
}
问题似乎是没有检测到第一个事件,而只检测到最后一个事件

如何指定“任意数量的字符”不能包含新的tr标记


你有什么建议吗?

根据Collapsar的评论,我使用了贪婪运算符,而我本应该使用不情愿运算符


编辑:我更新了到文档的链接,因为它自年以来已更改。

这应该可以完成技巧
(?((?)*?)
-在打开tr标记后进行非贪婪匹配。谢谢!现在我想这不是我想要的结果。如果我希望输出是所有数据的列表,而不仅仅是第一个,该怎么办?(如果你作为答案发布,我会接受)我编辑了我想要的输出。实际上,我想列出所有出现的tr balisa
{
  "content": [
    [
      "<tr> <td> cas1 </td> <td> cas2 </td> </tr>"
    ]
  ]
}