正規表現を介して一致させようとしている次の文字列があります。
;IF TEST_DATE <= 200112 THEN E>=90 AND S>=90
OR P = "25" ENDIF
IF TEST_DATE >= 200201 AND TEST_DATE < 200407 THEN E>=89
AND S>=90 OR P = "25" ENDIF
次の正規表現を使用して、セミコロン (コメントを意図) から最初の ENDIF まで一致させようとしています。
;\s*IF (\d|\D)+ ENDIF
残念ながら、このパターンは 2 番目の ENDIF まで完全に一致します。Java Pattern.DOTALL と (?s) フラグを使用してさまざまなソリューションを試しましたが、うまくいきませんでした。