我尝试正则表达以下字符串
: hostname: Oct 16 03:49:39.515: %BLA: message
并希望获得":"之间的字符串。和最后一个":"
之后的最后一个字符串当我使用: (.+?):
时,我得到hostname
。
不幸的是,我无法获得Oct 16 03:49:39.515
,%BLA
和message
。我需要为每个子字符串使用单个正则表达式,我不想将它们全部集中在一起。
答案 0 :(得分:3)
由于graylog2
是用Java编写的,我相信外观应该有用。试试这个正则表达式:
(?<=: )(.+?)(?=: |$)
更新:如果您确实需要4种不同的4种正则表达式,请使用:
RegEx 1:
(?<=: )(.+)(?=(?:: .+){3}[^:]*$)
RegEx 2:
: [^:]*: (.+?)(?=: )
RegEx 3:
: [^:]*: .+?: ([^:]+)
RegEx 4:
(?<=: )([^:]+)$