2016-02-29 62 views
0

我有数据,它写在1行中。我写了一个正则表达式代码/(ART\D\d{4}(.*)\DAND)/g,但我在这里有一个错误,它只是找到一个匹配,从第一个ART开始|和最后|和条目。我想分开他们。2个匹配的正则表达式

ART | 3613 { “currentTime的”: “2016年2月29日20时57分06秒 ”, “聊天”:{ “用户”: “服务器”, “味精”: “ASD”}} | AND ART | 8923 {“currentTime”:“2016-02-29 20:57:06”,“chat”:{“user”:“SERVER”,“msg”:“asd”}} AND

enter image description here

+0

这些是分开的行,他们看起来不像他们在单独的行。你试图做的是非贪婪的比赛,这可能会有一点牵扯。 – ffledgling

+0

他们在1行,我与他们分开空间 – SLI

+1

您可以使用:['''/ART\D\d{4}(.*?)\DAND/g'](https://regex101.com/r/ js7gk9/3) – anubhava

回答

2

尝试非贪婪版本...而不是(.*),使用(.*?)

+0

为什么反斜杠?你是对的,但使用非贪婪。 – lintmouse

+0

这是因为我不擅长使用stackoverflow发布语法。我在没有反斜杠的情况下尝试了它,它完全留下了星号。我尝试了反斜杠(因为我懒得查找它),它似乎工作,但我想它没有。我甚至没有注意到它第二次是错的。 –

+0

好的..固定。我认为。但是,真的......当我第一次做这件事时,星号不见了!或者我需要更多的药物。 –

1

使用非贪婪操作符.*?。或者它会整个你的字符串。

(ART\D\d{4}(.*?)\DAND) 

看这里:Regex101