私は結果がし、次いで@a2
が空 グループ化要素をperlの2つの異なる配列に格納しますか?
@a2
my $string = "abc123def456abc321def654";
my (@a1,@a2) = $string =~m/abc(\d+)def(\d+)/g;
$, = "\n";
print @a1;
に
@a1
で最初のグループと第2グループを格納することを試みました。しかし、結果は
@a1 = 123 321
です。
@a2 = 456 654
私はハッシュを試しましたが、キーを保存するために、最初にグループ化されていて、値は2番目のグループ化ですが、問題は重複しています。単一の正規表現でそれを行うための可能な方法はありますか?
私はeval group
をパターンマッチング内で試しました。私は@a1
から正しい結果を得ますが、@a2
が間違っています。そして、何が問題なのか分からない?
my (@a1, @a2);
$string =~m/abc(\d+) (?{push @a1, $1}) def(\d+)(?{push @a2,$2 }) \G/x;
@a1
結果が
1234
321
666
@a2
結果。これは、あなたが後にしているものです
4567
456
45
4
654
65
6
777
77
7
なぜこれを1つの正規表現に強制しますか? – Sobrique
@sorbrique私は1つのインタビューコールを持っていました。だから私はまだ評価グループを使ってそれを試していますが、私は結果を得ることができませんでした – mkHun
@mkHun厳密にすべて正規表現内に必要と思われるので、私はそれを私の答えに加えました。 – zdim