考虑仅针对正则表达式的第一场比赛并忽略最后一场比赛

时间:2017-02-22 07:22:18

标签: regex

我输入字符串如下。

  

created_at:2017-02-16 13:22:16,

     

created_at:2017-02-16 13:22:16,

我想要的是获得created_at&的双引号要做同样的事,我的正则表达式是\b(.*\s)(:\s)

现在格式化我使用替换为"$1" $2

以下是我得到的输出

  

" created_at" :2017-02-16 13:22:16,

     

" created_at:2017-02-16 13" :22:16,

我遇到的问题是第二行双引号在13之后移位。我想做的是正则表达式总是考虑第一次匹配而不是最后一次匹配,以便第二行输出与第一行相同。

有没有办法使用正则表达式完成这项工作?

查找演示

的以下链接

https://regex101.com/r/94nGZb/1

1 个答案:

答案 0 :(得分:0)

<强>更新

根据您在评论中更新的请求,此处的内容也与您的单行案例相符:

(.*?)\s?(:.*?)(\\n\\n|$)

可以在这里看到: https://regex101.com/r/zjQAL2/4

<小时/> 您可以将其更改为从字符串的开头开始,并且是多行的,如下所示:

/^(.*?)\s?(:.*)$/gm

看到它的实际效果:

https://regex101.com/r/zjQAL2/1