2016-10-04 4 views
1

私が作成したカスタムタグに基づいてテキストを選択しようとすると、レンガの壁に当たってしまいました。実際のタグ参照ではなく先行するタグ参照のキャプチャ

は、私は次のBOLDタグを選択します:

[AREAのROW、CHNO]あなたのカードはユーロに課金されます[/ AREA][AREA英国、 米国、HK。 ]発見、[/ AREA]

しかし、次の正規表現の使用:

\[AREA\s((.*),\sUS,\s.*)\].*?\[.AREA\] 

完全な行を選択しています。私はなぜそれが行全体を選択しているのか理解していますが、最初のタグを無視する方法を理解することはできません。

[AREAのROW、CHNO]あなたのカードはユーロに課金されます。[/ AREA] [AREA英国、 米国、HK]発見、[/ AREA]

あなたは助けることができます?

答えて

2

問題は貪欲.*[AREA\s,\sUS間の最長一致を照合され、あなたの正規表現で,\sUS[AREA\s間の存在です。

あなたはそれが唯一の次のカンマまで一致させることができるように否定文字クラスを使用することができます。

\[AREA\s[^,]+,\sUS,\s.*?\].*?\[\/AREA\] 

RegEx Demo

+1

感謝のお返事を、私は正規表現を楽しむことが、私は多くの場合、それをしません。私が失敗した理由を説明してくれてありがとう!私はこの論理を他の式に使うつもりです。非常に便利。 – c14kaa

関連する問題