正则表达式模式匹配问题

时间:2014-11-26 15:08:32

标签: regex regex-lookarounds regex-greedy

以下是我要匹配的文字

3 INFO  ~ [com.Engine:164] italics

(?<=~\s\[)([a-zA-Z0-9\.]+)(?=:)(?<=:)(.*)(?=\])

我需要从中获取2个表达式 -

  1. com.Engine
  2. 164
  3. 我不需要更多匹配,甚至不需要:

    (?<=~\s\[)([a-zA-Z0-9\.]+)(?=:)
    

    正在给我com.Engine,但正则表达式并没有给我任何结果。

    请帮忙。

4 个答案:

答案 0 :(得分:1)

怎么样

(?<=~\s\[)([a-zA-Z0-9\.]+):[^]]+

示例:http://regex101.com/r/kT6vO6/1

  • :[^]]+匹配]
  • 所提出的:以外的任何内容

答案 1 :(得分:0)

(?<=\[)[^:]+|(?<=:)[^\]]+

试试这个。看看演示。

http://regex101.com/r/oE6jJ1/38

答案 2 :(得分:0)

不确定各个部分的规则,但如何:

.*\[(.*):(\d*)\].*

答案 3 :(得分:0)

I='3 INFO  ~ [com.Engine:164] italics';
J=I.replace(/^.*?\[(.*?)\].*$/,'$1').split(':');
alert(J[0]+'\n'+J[1]);