如果我有一个字符串,如:
JOURNAL Yeast 10 (11), 1503-1509 (1994)
如何在括号中加上两个数字(11和1994)?我尝试的一种方法是使用:
/\s+JOURNAL\s+.*\((\d+).*\((\d+))/
但这不起作用。所以我的两个问题是:
如何转义括号以便我可以在RE中使用它们?
如何获得以上两个数字?
我在Perl中这样做。谢谢你的帮助!
答案 0 :(得分:5)
你的正则表达式很好,除了你最后有一个额外的)
。
$_ = " JOURNAL Yeast 10 (11), 1503-1509 (1994)";
if ( /\s+JOURNAL\s+.*\((\d+).*\((\d+)/ ) {
print "one: $1, two: $2\n";
}
如果要明确确保数字后面有一个结束括号,则:
/\s+JOURNAL\s+.*\((\d+)\).*\((\d+)\)/
答案 1 :(得分:2)
答案 2 :(得分:-1)
还要考虑对字符使用八进制等价物,有时会更容易阅读。 所以要找到 (11) 正则表达式将是:\050(d+)\051