我使用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