【问题标题】:Regex for non-greedy range of digits非贪婪数字范围的正则表达式
【发布时间】:2016-01-01 10:19:47
【问题描述】:

我正在尝试使用正则表达式在下面显示的 JSON 数据中获取第一次出现的 InvoiceItemID 这是我目前拥有的正则表达式字符串: \d{6}(?=","Location":"ARN:190801210003100) 当前的正则表达式字符串返回两个匹配项,但我只对第一次出现/匹配感兴趣。我知道我需要做的是使正则表达式不贪心,这通常涉及使用类似这样的东西:(.*?) 但我不知道在哪里实现这个非贪心代码。任何帮助,将不胜感激。谢谢。

如果需要,这里是一些用于测试目的的原始数据:

{"ClientRef":"","Date":"2015-09-29 10:02:51 AM","InvoiceID":"451393","InvoiceItemID":"495340","Location":"ARN:193602013349538<br\/>16 LEIGHLAND DR , CITY OF MARKHAM, ON, L3R 7R4","ReportID":"268172,","Type":"ICI Commercial \/ Industrial Report"},{"ClientRef":"","Date":"2015-09-28 8:39:41 PM","InvoiceID":"451035","InvoiceItemID":"494939","Location":"ARN:190801210003100<br\/>2250 SHEPPARD AVE W, CITY OF TORONTO, ON, M9M 1L7","ReportID":"267810,","Type":"Basic Report"},{"ClientRef":"","Date":"2015-09-28 8:39:20 PM","InvoiceID":"451034","InvoiceItemID":"494938","Location":"ARN:190801210003100<br\/>2250 SHEPPARD AVE W, CITY OF TORONTO, ON, M9M 1L7","ReportID":"267809,","Type":"ICI Commercial \/ Industrial Report"},{"ClientRef":"","Date":"2015-09-28 2:59:03 PM","InvoiceID":"450515","InvoiceItemID":"494348","Location":"ARN:240201011110900<br\/>26-34 PLAINS RD E, BURLINGTON CITY, ON, L7T 2B9","ReportID":"267272,","Type":"ICI Commercial \/ Industrial Report"}

【问题讨论】:

    标签: regex regex-greedy


    【解决方案1】:

    你的正则表达式不是要走的路。您可以看到如何无法匹配所有here。这是使用此正则表达式的demo

    InvoiceItemID":"(\d{6})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      • 2011-04-27
      • 2010-10-20
      • 1970-01-01
      相关资源
      最近更新 更多