特定の単語に一致させてから、別のパターンが得られるまですべてに一致させたいというシナリオがあります。例えば
ABC=145865865
その後、何かが起こります
その後
日付=2001/11/11
(.*?) を試しましたが、シナリオの特定の行にのみ一致し、間に複数のデータ行があります。
これどうやってするの?
特定の単語に一致させてから、別のパターンが得られるまですべてに一致させたいというシナリオがあります。例えば
ABC=145865865
その後、何かが起こります
その後
日付=2001/11/11
(.*?) を試しましたが、シナリオの特定の行にのみ一致し、間に複数のデータ行があります。
これどうやってするの?
あなたが探していると思うものに最も近い推測:
ABC=(\d+)[\s\S]*?Date=(\d\d/\d\d/\d{4})
これは[\s\S]
、「空白文字または空白文字以外のいずれか」を意味する which を使用します。これは、「任意の文字」と同等です。は任意の文字に一致するように設定することもできますが、フラグを設定しなくてもそれだけで一致するため.
、私は好む傾向があります。[\s\S]
使用している言語を指定していないため、とにかくそのようなフラグを設定する方法を教えることはできません ( re.DOTALL
Python にあります)。
複数行?間に改行文字 (\n) がある場合は、次のように DOTALL フラグを設定する必要があります。
Pattern p = Pattern.compile(<your-regex-here>, Pattern.DOTALL)
上記は、2 つの文字列間の改行文字に一致します。