0
1) some text 2)
1. some text 2.
1) some text 2.


1. 2.10.10.20 some text 2.
1) 2.10.10.20 2)

1) と 2) または 1. または 2. の間のテキストを取得したい

ここに私が書いたものがあります

1[).](.*?)2[).]

1. 2.10.10.20 some text 2.したがって、ここの perl では $1 で の間のテキストが表示されますが、これは 3 番目の一致 ( )で失敗します。

誰かが正規表現の設定を手伝ってくれませんか。

4

3 に答える 3

2
#!/usr/bin/env perl

use 5.012;
use strict;
use warnings;

while (my $line = <DATA>) {
    if ($line =~ m{ 1[.)] \s (.+?) \s 2[.)] }x) {
        say qq{'$1'};
    }
}

__DATA__
1) some text 2)
1. some text 2.
1) some text 2.


1. 2.10.10.20 some text 2.
1) 2.10.10.20 2)

出力:

「テキスト」
「テキスト」
「テキスト」
「2.10.10.20 いくつかのテキスト」
「2.10.10.20」
于 2013-04-12T14:26:44.053 に答える