有人能向我解释ungreedy不工作,这是为什么不工作:正则表达式用Perl,如预期
# echo '"Hello,1" "Hello,2" "Hello,3"' | perl -pe 's/".+?,3"/1/'
1
或
# echo '"Hello,1" "Hello,2" "Hello,3"' | perl -pe 's/".+?,2"/1/'
1 "Hello,3"
我的意图是要替换/只找到“你好, 3“/”你好,2“,但似乎非贪婪修饰符(或我的大脑)没有按预期工作。
正则表达式引擎从左至右字符串匹配,' “'匹配的第一个'”'和' 。+?'正确地完成了它的工作,匹配到了第一个''3''。期望的输出是什么,BTW? –
您能澄清一下预期的输出是什么吗?“Hello,1”“Hello,2” 1'? –