<tr><td align=right>Name:</td><td align=left><b><font color=black>Nathan</font></b></td></tr>
<tr><td align=right>Extension:</td><td align=left><b>222</b></td></tr>
上記のHTMLグロブのテキスト(変更できません)があり、3つのキャプチャグループ、ラベル(Name|Extension)
、フォントの色(black|red)
、およびデータを返す正規表現が必要(\w+)
です。
フォントの色であるキャプチャグループ2を返すのに問題があります。ご覧のとおり、テーブルの「Extension」行には表示されていないため、キャプチャグループをオプションにしました。私がそうするとき、それは最初の行でまったく一致していません。数量詞のさまざまな組み合わせの試行錯誤を何度も試しましたが、それでも探している結果を得ることができません。
これが私がこれまでに持っているパターンです:(Name|Extension):.*?(?:<font color=(black|red)>)?.*?>(\w+)
.*?
オプションのキャプチャグループを消費し、1番目と3番目のグループにのみ一致すると思います。誰かが私がどこで間違っているのか説明してくれるなら、それは素晴らしいことです。
編集:正規表現についてもっと学ぼうとしている人として、私が上に持っているデータをHTMLではなく不変のテキストとして解釈していただければ幸いです。