正则表达式:匹配两个字符串之间的字符串

时间:2015-09-16 13:08:55

标签: regex

我有一个这样的字符串:

[01/09/2015 00:00:47]       INFO=54646486432154646 from=steve   idfrom=55516654455457       to=jone       idto=5552045646464 guid=100021623456461451463   n
um=6    text=hi my number is 0 811 22 1/12   status=new      survstatus=new

我想提取文本字段,结果应该是这样的:

hi my number is 0 811 22 1/12

这就是我尝试的正则表达式:

text=(.*)status

它给了我这个:

hi my number is 0 811 22 1/12   status=new      survstatus=new

所以这不是我想要的,我怎么能摆脱最后两个领域呢?

感谢。

3 个答案:

答案 0 :(得分:1)

我会用:

\btext=(.*?)\bstatus=

以避免hi my status is 0

中的匹配状态

答案 1 :(得分:0)

所以答案是text=(.*?)status,感谢@HamZa的快速回答。

答案 2 :(得分:0)

您的数据看起来像是以制表符分隔的。如果是这种情况,这可能会更好:

\ttext=([^\t*])

基本上说,找到一个标签后跟' text ='然后捕捉所有内容直到下一个标签。

在这里查看:

http://refiddle.com/2iqa