gpt4 book ai didi

regex - 在 RegEx 中强制执行匹配顺序

转载 作者:行者123 更新时间:2023-12-02 03:20:30 26 4
gpt4 key购买 nike

我正在为 ISBN 解析一些搜索查询文本。每行可能包含零个或多个 ISBN10、零个或多个 ISBN13 以及其他不相关的数字。文本已被净化为仅包含 [a-zA-Z0-9 ],但相关数字之间可能有空格。我已经成功编写了一些正则表达式片段来解析文本,但我不确定如何让它们按照我想要的顺序执行。

首先,这是来自数据的示例文本行:

foo ISBN10 013 284 1649 0132841648 Web ISBN13 9 78013 2841641 9780132841641 2013 bar

我需要(按此顺序):

  1. 在整个字符串中搜索 ([9][7][8-9]\d{10})
  2. 仅搜索尚未匹配的内容 (\d{10})
  3. 仅搜索尚未匹配的内容 ([9]\s*[7]\s*[8-9]\s*(\s*\d ){10})
  4. 仅搜索尚未匹配的内容 (\d(\s*\d){9})

这完成了搜索完整的 ISBN13,然后是完整的 ISBN10,然后是碎片化的 ISBN13,最后是碎片化的 ISBN10。但是,如果我简单地将它们粘贴在一起,用 | 分隔,RegEx 引擎会为每个字符计算 (1,2,3,4)。在考虑评估 #2 之前,我如何在整个字符串中搜索表达式 #1?

最佳答案

执行四次 replaceAll 并在每一步中删除成功的匹配项(即,将它们替换为 "")。

关于regex - 在 RegEx 中强制执行匹配顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33884072/

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