我使用Ubuntu 14.04,和我有下面的語句:sed的 - 正則表達式的方括號檢測的Linux
192.168.2.4 [text to capture] Test: This is a test statement.
我試圖捕捉到「文本捕獲」使用下面的正則表達式:
echo "192.168.2.4 [text to capture] Test: This is a test statement" | sed -r "s/^[^\[\]]*\[(.*)\].*$/\1/"
正則表達式的思想是遍歷所有不匹配開合方括號的字符。遇到方括號時,捕獲文本直到遇到右括號,然後忽略所有後續字符。
當我在regex tester中使用上述正則表達式時,我可以看到「正在捕獲的文本」正在被捕獲。
然而,執行上述正則表達式的命令又名返回完整的語句:
echo "192.168.2.4 [text to capture] Test: This is a test statement" | sed -r "s/^[^\[\]]*\[(.*)\].*$/\1/"
任何人能發現我在這裏錯過了什麼?我相信我已經正確地脫離了字符括號,因爲它與正則表達式測試程序正常工作。
感謝 約翰
你能添加說明?就目前情況而言,目前還不清楚這是什麼(它是否打算作爲對問題的更新?)或者它的作用。 – Laurel