有人能向我解釋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'? –