Grok 模式匹配但结果也包含模式
Grok pattern matches but result also contains pattern
我正在使用 HerokuApp 创建一个与 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>
这是我写的匹配tr标签内容的模式。 Thanks to this documentation
(?<content>(<tr>(.)*</tr>))
因此,此正则表达式的输出为:
{
"content": [
[
"<tr> <td> cas1 </td> <td> cas2 </td> </tr> <tr> <td> new </td> <td> line </td> </tr>"
]
]
}
当我希望它成为:
{
"content": [
[
"<tr> <td> cas1 </td> <td> cas2 </td> </tr>"
]
]
}
问题似乎是没有检测到第一次出现,只有最后一次出现。
如何指定 "any number of char" 不能包含新的 tr 标签?
你有什么建议吗?
根据 Collapsar 的评论,我在本应使用勉强运算符的地方使用了贪婪运算符。 This document explains the syntax of operators
编辑:我将 link 更新到文档中,因为它已更改。
我正在使用 HerokuApp 创建一个与 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>
这是我写的匹配tr标签内容的模式。 Thanks to this documentation
(?<content>(<tr>(.)*</tr>))
因此,此正则表达式的输出为:
{
"content": [
[
"<tr> <td> cas1 </td> <td> cas2 </td> </tr> <tr> <td> new </td> <td> line </td> </tr>"
]
]
}
当我希望它成为:
{
"content": [
[
"<tr> <td> cas1 </td> <td> cas2 </td> </tr>"
]
]
}
问题似乎是没有检测到第一次出现,只有最后一次出现。
如何指定 "any number of char" 不能包含新的 tr 标签?
你有什么建议吗?
根据 Collapsar 的评论,我在本应使用勉强运算符的地方使用了贪婪运算符。 This document explains the syntax of operators
编辑:我将 link 更新到文档中,因为它已更改。