gpt4 book ai didi

regex - 匹配正则表达式后选择下一行

转载 作者:行者123 更新时间:2023-12-01 06:55:54 25 4
gpt4 key购买 nike

我目前正在使用扫描软件“Drive Image”从每张纸中提取某些信息。如果需要,该软件可以运行某些 Regex 代码。它似乎与 UltraEdit 正则表达式引擎一起运行。

我得到以下扫描结果:

 1. 21Sid1
2. Ordernr
3. E17222
4. By
5. Seller

我需要在字符串中搜索文本 Ordernr然后选择以下行 E17222最后将是扫描文档的文件名。我永远不会知道这两个值在字符串中的确切位置。这就是为什么我需要关注 Ordernr因为我需要的文本将始终作为下一行。

我的要求是这样的,我需要 E17222成为比赛结果中唯一能让这个工作的东西。我只能输入 普通的正则表达式。

已经有一个很棒的线程: Regex to get the words after matching string

我已经测试过“ \bOrdernr\s+\K\S+ ”效果很好..

如果不是该软件不允许使用/K。还有其他实现\K的方法吗?



虽然如果示例文本涉及“Ordernr”后面的字符,则当前答案在我需要的范围内不起作用。像这个样本:

21Sid1

订单号 1

E17222

经过

卖方

当前的解决方案选择“1”而不是“ 下一行”,后者将是“ E17222”。在匹配组中。需要指出这一点以进一步参与该问题。

最佳答案

描述

ordernr[\r\n]+([^\r\n]+)
Regular expression visualization
此正则表达式将执行以下操作:
  • 找到 ordernr子串
  • 放置以下行 ordernr捕获组 1

  • 例子
    现场演示
    https://regex101.com/r/dQ0gR6/1
    示例文本
     1. 21Sid1
    2. Ordernr
    3. E17222
    4. By
    5. Seller
    样本匹配
    [0][0] = Ordernr
    3. E17222
    [0][1] = 3. E17222
    解释
    NODE                     EXPLANATION
    ----------------------------------------------------------------------
    ordernr 'ordernr'
    ----------------------------------------------------------------------
    [\r\n]+ any character of: '\r' (carriage return),
    '\n' (newline) (1 or more times (matching
    the most amount possible))
    ----------------------------------------------------------------------
    ( group and capture to \1:
    ----------------------------------------------------------------------
    [^\r\n]+ any character except: '\r' (carriage
    return), '\n' (newline) (1 or more times
    (matching the most amount possible))
    ----------------------------------------------------------------------
    ) end of \1
    ----------------------------------------------------------------------
    或者
    使用环视仅捕获该行,以便 ordernr不包括在捕获组 0 中并适应 \r 的所有变化和 \n
    (?<=ordernr\r|ordernr\n|ordernr\r\n)[^\r\n]+
    Regular expression visualization
    现场演示
    https://regex101.com/r/pA4fD4/2

    关于regex - 匹配正则表达式后选择下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37526216/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com