如何在Perl正则表达式中转义括号?

Jen*_*aiz 0 regex perl parsing text

如果我有一个字符串,例如:

 JOURNAL   Yeast 10 (11), 1503-1509 (1994)
Run Code Online (Sandbox Code Playgroud)

如何获得括号中的两个数字(11和1994)?我尝试的一种方法是使用:

/\s+JOURNAL\s+.*\((\d+).*\((\d+))/
Run Code Online (Sandbox Code Playgroud)

但这不起作用。所以我有两个问题:

  1. 如何转义括号,以便我可以在RE中使用match?

  2. 如何获得上述两个数字?

我正在Perl中执行此操作。谢谢你的帮助 !

yst*_*sth 5

您的正则表达式很好,只不过您最后有一个额外)的东西。

$_ = " JOURNAL   Yeast 10 (11), 1503-1509 (1994)";
if ( /\s+JOURNAL\s+.*\((\d+).*\((\d+)/ ) {
     print "one: $1, two: $2\n";
}
Run Code Online (Sandbox Code Playgroud)

如果要明确确定数字后有括号,则:

/\s+JOURNAL\s+.*\((\d+)\).*\((\d+)\)/ 
Run Code Online (Sandbox Code Playgroud)