2016-05-26 6 views
0

私はReg Exp(pcre flavor)の一部を取得しようとしています。最初の選択が2番目の選択内にあるときに、2つの選択肢を正規表現にマッチさせる方法

ここにHTML構造があります。私はChildAとChildBの両方を選択したいと思います。 (すなわち、Match1:親からChildAへ、Match2:親からChildBへ)。

<Parent> 
      <ChildA>..</ChildA> 
      <ChildB>..</ChildB> 

私は疑問符とせずに試してみました

/<parent>(.|\n)*?<child(a|b)>/gmi 

を試してみました。 ChildAまたはChildBのいずれかを選択しますが、両方を選択することはできません。

誰も私を案内できますか?

マッチ1:

<Parent> 
      <ChildA> 

マッチ2:

<Parent> 
      <ChildA>..</ChildA> 
      <ChildB> 

Here's a fiddle

は、下記(ペトルSrníčekによって要求されるように明確に)私が取得しようとしているが一致しています

+0

なぜregexを使いたいのですか? –

+0

regexesを使ってどの言語でやっていますか? Perlでは// gを使用することができます – Zafi

+0

私はあなたが期待していることを理解していません... – ClasG

答えて

1

これは必要な処理を行う場合があります。

/(<parent>.*?<child[ab]>).*?<child[ab]>/gmis 

注、私はs修飾子を追加し、不要なキャプチャグループを避けるために[ab](a|b)から変更しました。

https://regex101.com/r/eL2sO6/2

はまた、あなたが要求したとしてMATCH1であることに注意してください。あなたのmatch2は完全に一致します。明示的にサブミットにしたい場合は、角かっこをすべて丸めます。

関連する問題