gpt4 book ai didi

regex - 排除整个单词并强制执行惰性正则表达式行为

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

我想要一个正则表达式,它匹配文本中从“a”开始并以“e”结尾的所有单词组,但以“the”文章结尾的单词除外。例如,在句子“这里是四个 sleep 的守卫,被无敌的阳光从侧面击中”我需要匹配“无敌”,而不是"is"(我的另一个问题是如何强制 vba 匹配"is"而不是多余的"is"首先)。到目前为止,我已经想出了以下模式:\ba([^.,?;!]){1,50}[^h]e\b (我还排除了某些标点符号并将字符串长度限制为最多大约 50 个字符:后者是我目前能够抑制冗长、贪婪的唯一方法,即匹配)。我非常不完美的解决方案帮助我取消了以“the”结尾的词组,但显然也取消了以“he”结尾的词组,这是我不想要的(我玩过前瞻,但不幸的是无法申请在我的情况下的概念)。此外,我对抑制过长匹配的这种低效方式不满意。请你帮助我好吗。

最佳答案

如果我理解正确,那是您需要的正则表达式

\ba[\w ]+?(?<!\bth)e\b
  • [\w ]匹配所有单词字符和空格。如果您还想用逗号和句点匹配短语,请更改此设置。
  • +?是一个惰性量词。这意味着只有在前面的字符串与下一个子模式不匹配时,它才会继续匹配。
  • (?<!\bth)是一个消极的向后看,以确保没有 the 之前.
  • 关于regex - 排除整个单词并强制执行惰性正则表达式行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48151409/

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