gpt4 book ai didi

正则表达式匹配第一次出现之前和最接近字符串

转载 作者:行者123 更新时间:2023-12-01 02:11:07 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式来获取最接近名称“Daily”的 ID 编号。尽管如此,我遇到了困难。
当我尝试正则表达式模式时,我得到以下结果:

  • 从第一个 ID 出现到“每日”的所有内容都被选中。
  • 所有的 ID 都是单独选择的(我可以指定匹配编号以获得正确的 ID,但问题是如果在我需要的 ID 之前添加或删除 ID,它将不再匹配)。
  • 未找到匹配项。

  • 我一直在尝试 regexr测试我的正则表达式。

    链接中也是我试图从中获取结果的文本示例。我没有包括整个文本,因为那将是太多信息。使用当前的正则表达式模式,我可以选择 Match Number 3 来获得我需要的结果,但问题是可以在所需结果之间添加或删除 ID。

    我使用的另一个模式是 }},{.*?"id":([0-9]*).*?Daily并且该模式会产生正确的 ID,但问题是我还需要为名称为“9am”的部分以及其他部分获取 ID。将该模式中的“Daily”更改为“9am”会返回“Daily”的 ID,而不是“9am”的 ID。

    我已经尝试了很多不同的选项,但没有一个能准确地寻找我想要的东西,期待当我让正则表达式匹配所有“id”时需要指定匹配号的那个:([0-9]* ) 模式。

    有谁知道我如何才能正确获得所需的结果?

    最佳答案

    我想你想得到 "id":8 .所以,你可以使用这个正则表达式:
    "id":([0-9]*)(?=[^\}]*?Daily)
    example .

    澄清一下:我正在使用否定字符类 [^\}]*?在正向前瞻中,任意数量的重复,尽可能少,因为不应该有 }每日在 {"content":[{"id":7,"name":"Hourly","someRandomText":{"id":1,"moreRandomText"}},{"id":8,"1/1","name":"Daily","dailyRandom":{"id":1,"dailyRandomText"}},{"id":9,"1/1","name":"9am","amRandom":{"id":1,"amRandomText"}}]} 之前的符号字符串。

    关于正则表达式匹配第一次出现之前和最接近字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29301190/

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