1
我需要在我的日誌(meassage1)中選擇沒有[的字母。Ruby正則表達式選擇無[
我的日誌:
[LogMessage:INFO:[sm-Server-02110] Product=PolicyServer,Platform=Linux 2.6.32-573.8.1.el6.x86_64,Version=12.52,Update=01.01,Label=640,Crypto=128,UTC=1456285048,TZ=0][]
我正則表達式:
\[(?<message1>\S+)\]\s(?<message2>.*)\]\[(?<data>[^\]]*)\]$
匹配:
message1 LogMessage:INFO:[sm-Server-02110
message2 Product=PolicyServer,Platform=Linux 2.6.32-573.8.1.el6.x86_64,Version=12.52,Update=01.01,Label=640,Crypto=128,UTC=1456285048,TZ=0
data
參考ENCE:http://rubular.com/r/urCvQMdRlB
我需要匹配結果message1 LogMessage:INFO:sm-Server-02110
而不是message1 LogMessage:INFO:[sm-Server-02110
我嘗試以下方法:
\[(?<message1>[^[].*)\]\s(?<message2>.*)\]\[(?<data>[^\]]*)\]$
但其拋焦炭類過早結束。
建議我如何選擇無值選擇此選項。
剛剛從'message1'之後您刪除它得到比賽。沒有辦法將不連續的部分文本捕獲到1組中。 –
另一種方法是將'LogMessage:INFO:'和'sm-Server-02110'分別進行匹配,然後將它們連接起來。 – mudasobwa
@mudasobwa:如果你有時間,請發表一個答案來表明這種方法。或者也許兩個。 –