如何使用Regex匹配两个周围字符串之间的每个字符串,不包括周围的字符串?

时间:2015-04-12 05:30:30

标签: regex grep

我正在与正则表达式斗争。这是我正在使用的命令(在Windows上运行Cygwin)根据hwnd的建议(已经解决了我之前的问题):

grep -Po '(?<="id":)[^,]+' regex_test.txt

如何更改正则表达式,以便创建的匹配以,{“id”::[{“id”:?可悲的是,当前的表达式还捕获了以:{“id”:

为前缀的不需要的ID

输入名为“regex_test.txt”的文本文件:

  

原因 “:{” ID“:25549177,“模式 ”:NULL}“,iphone ”:[{“ ID ”:2411977008,版本“:空},{ ”ID“:2430057923,

输出:

  

25549177

     

2411977008

     

2430057923

期望的输出:

  

2411977008

     

2430057923

请让我知道您对这些问题的看法。

1 个答案:

答案 0 :(得分:1)

您可以使用正面观察断言(,如链接的answer 所示):

grep -Po '(?<="id":)[^,]+' regex_test.txt

Ideone Demo