【问题标题】:Regular Expression that matches a set of characters or nothing匹配一组字符或什么都不匹配的正则表达式
【发布时间】:2021-08-08 06:24:56
【问题描述】:

我有一组文本输入为:

  • 1 240R 2021 年 4 月 15 日 240 升 Sulo Bin 回收 - Dkt#11053610 O/N:一位牙科 $10.00。
  • 1 1.5cm 2021 年 4 月 6 日 1.5m Co-Mingle 回收箱 - Dkt#11028471 $18.00。
  • 1 1.5m 2021 年 4 月 12 日服务 1.5m 前升降箱 - Dkt#11028421 $24.00
  • 1 660 2021 年 4 月 14 日 660L 后升降箱 - Dkt#11156377 O/N:您的汽车已售出 22.50 美元

我正在尝试正则表达式:PCRE(PHP

^(\d+) [^\$]+ (\d+ \w+ \d+) (\d.+ \w.+) \S (Dkt\S\d+)[^\$]+ (\$.*)$

解析上述内容但是,我无法从上面的列表中解析“O/N: ONE DENTAL”或“O/N: YOUR CAR SOLD”

如果在 Dkt#xxxx 之后有东西,我该怎么做,它也将被解析或什么都没有

【问题讨论】:

    标签: regex text-parsing


    【解决方案1】:

    既然你已经有了这个模式,我对它做了一些细微的修改。这是基于提供的示例字符串,如果您有其他用于匹配的规则变体,可能需要进一步修改。

    Example

    ^(\d) (\S+) (\d{2} \w{3} \d{4}) (.*)\s+-\s(Dkt\S+)\s*(.*?)\s*(\$\d+(?:\.\d+)?)\.?\s*$
    

    【讨论】:

      猜你喜欢
      • 2014-11-18
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 2014-01-07
      • 2012-02-27
      • 2019-01-13
      • 1970-01-01
      相关资源
      最近更新 更多