0

次のテキストがあります。

:10A: <any characters here>\r\n
<any characters here>\r\n
<any characters here>\r\n
.
.
.
:11A: or :12P:

2 つの「:XXX:」記号の間は、最大 10 行 (最初の行を含む) にすることができます。最初の 1 ~ 4 行 (「:10A:」なしの最初の行を含む) を抽出する必要があります (REGEX のみを使用し、Java メソッドは使用しません)。

例 1:

:10A: Line number 1\r\n
Line number 2\r\n
Line number 3\r\n
Line number 4\r\n
Line number 5\r\n
Line number 6\r\n
:11A:

抽出します:

Line number 1\r\n
Line number 2\r\n
Line number 3\r\n
Line number 4\r\n

例 2:

:10A: Line number 1\r\n
Line number 2\r\n
:12P:

抽出します:

Line number 1\r\n
Line number 2\r\n

どんな助けでも大歓迎です。

ありがとう。

4

3 に答える 3

1

この正規表現を使用できます

(?<=:.{3}:)(.*?(\\r?\\n)){1,4}
于 2013-06-23T10:42:28.363 に答える
0

たぶん正規表現から始めます:

:(?:.*?):((?:.*?[\r\n]){1,4})(?:.*?):(?:.*?):

最初に一致したグループは、最大 4 行のテキストを返します。

重要な注意: Java のような「dotall」オプションまたは同様のオプション ( Perl または.NETPattern.compile(pStr, Pattern.DOTALL)の単一行モード) をオンにする必要があります。そうしないと、複数行のデータで作業しているため、正規表現が機能しません。 ./.../sRegexOptions.Singleline

于 2013-06-23T10:21:06.703 に答える