我正试图让我的Reg Exp(pcre风味)的一部分工作。
这是HTML结构。我想选择ChildA和ChildB。 (即Match1:从Parent到ChildA;以及Match2:从Parent到ChildB)。
<Parent>
<ChildA>..</ChildA>
<ChildB>..</ChildB>
我试过
/<parent>(.|\n)*?<child(a|b)>/gmi
我尝试使用和不使用问号。它选择最多ChildA或ChildB,但不能同时选择两者。
有人可以指导我吗?
以下是我想要获得的比赛(根据PetrSrníček的要求澄清):
匹配1:
<Parent>
<ChildA>
比赛2:
<Parent>
<ChildA>..</ChildA>
<ChildB>
答案 0 :(得分:1)
这可能会满足您的需求:
StringBuilder
注意,我已添加了/(<parent>.*?<child[ab]>).*?<child[ab]>/gmis
修饰符,并已从s
更改为(a|b)
,以避免不必要的捕获组。
请参阅https://regex101.com/r/eL2sO6/2
另请注意,match1符合您的要求。你的match2将是整场比赛。如果您明确希望它是一个子匹配,请在所有内容中添加括号。