我想开发一个规则的表达式来匹配标签:
<claim-text>aaaaaaa
<claim-text>bbbbbbb</claim-text>
<claim-text>ccccccc</claim-text>
</claim-text>
我试过了
<claim-text>(.*)</claim-text>
但是,只有bbbbbbb和ccccccc可以匹配。我也可以得到一些帮助来覆盖aaaaa吗?
谢谢
对于任何深度的通用解决方案,您至少需要一个堆栈,该堆栈不适用于大多数正则表达式实现。但是,如果您知道结构将仅具有您指定的深度,则可以使用如下所示的内容:
<claim-text>([^<rn]*)
您可以在此处看到一个工作示例:https://regex101.com/r/kbDbwF/1
它将搜索您的开始标记,然后查找下一个开始或结束标记[^<]
或下一个换行符[^rn]
的任何内容。我将两个字符类组合成一个定义[^<rn]
。但是,这不是通用解决方案!
在任何情况下都不要尝试使用正则表达式解析 HTML,除非您希望调用rite6 6 6Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn。
使用 HTML 解析库 有关执行此操作的一些方法,请参阅此页面。