使用grep下面的正則表達式似乎並不奏效: grep "(?=\_\(\").*?(?=\"\))" ./testfile.js
爲什麼這個grep <regex>無法正常工作?
testfile.js如下:
asoijf oaisdjf _("string 1") fodijsasf _("string 2")
fasdoij _("string 3");
console.log(_("string 4"));
我的目標就是抓住封閉在所有字符串_()函數調用,沒有greps -P標誌(這個選項對我來說不存在)。預期的輸出將是:
string 1
string 2
string 3
string 4
任何想法的?
更新:-P標誌從慶典在我的版本的Mac的去除(見grep -P no longer works how can I rewrite my searches)
*?總是給我帶來問題。嘗試:_ \(「([^」] +)「\)如果可行我會寫出一個很好的答案 – sniperd
grep的正則表達式語法與您可能習慣的語法不同, (?= ...)'或者非貪婪的'*?'。 –
@JohnKugelman它用'-P'來支持所有這些, – 123