gpt4 book ai didi

regex - 匹配 Perl 中的最后一个正则表达式模式

转载 作者:行者123 更新时间:2023-12-01 08:23:08 26 4
gpt4 key购买 nike

我正在用 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

我做错了什么?或者甚至可以这样匹配?
感谢您的帮助。

最佳答案

(\((?:[^()]|(?1))*\))(?!.*\()

您可以在此处使用递归 正则表达式。查看演示。

https://regex101.com/r/hE4jH0/21

关于regex - 匹配 Perl 中的最后一个正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34035671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com