我正在用 Perl 编写脚本,需要从文本文件中提取一些信息。
这就是我的代码的样子 - 字符串值是组成的,但代表所有可能的字符串变体。
my @alpha = ("abcdefgh(i) jklmno(pqrs3), uvwxyz",
"abcdefghi jklmn(opq1st), uvwxyz",
"abcdefghi jklmn(o_q(1s3)), uvwxyz",
"abcdef(gh)i jklmno(pq(1s3)), uvwxyz");
foreach my $line (@alpha){
if ($line =~ /\((.*\(?.*\)?)\),/){
print $1
}
}
我正在 try catch 最后一组括号(或我们说英语的英国人的方括号)之间的大文本。
请注意,我使用的是“点”运算符,因为我想匹配任何内容、文本、数字或其他特殊字符。
基本上我想打印出来:
pqrs3
opq1st
o_q(1s3)
pq(1s3)
但我不断得到:
(i) jklmno(pqrs3) <-- not ok
opq1st <-- this is ok
opq(1s3) <-- this is also ok
gh)i jklmno(pq(1s3) <-- not ok
我做错了什么?或者甚至可以这样匹配?
感谢您的帮助。
最佳答案
关于regex - 匹配 Perl 中的最后一个正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34035671/