如何匹配最近的特定字符之前的任何字符串?

时间:2016-05-04 22:50:01

标签: regex perl

我需要在第一个遇到特定字符之前匹配任何字符。尝试:

use feature 'say';
say $1 if 'bla-bla if (func(arg1, arg2) < 0) {' =~ /func\s*\((.*?)\)\s*\{/;

我认为此代码没有输出,导致.*?匹配arg1, arg2(即在最近的)之前),{之后没有func(arg1, arg2) {1}}所以正则表达式变为假。但是,输出为arg1, arg2) < 0Indeed非贪婪的正则表达式选择尽可能少的允许整体模式匹配。但我希望这个正则表达式对这些字符串是错误的。我在that post找到了可行的解决方案。在我的情况下,.*?应更改为[^\)]*。但还有其他方法吗?感谢您的任何澄清和示例。对不起,如果这很明显

0 个答案:

没有答案