gpt4 book ai didi

javascript - 使用可选组获取最短匹配的问题

转载 作者:行者123 更新时间:2023-11-30 11:43:47 24 4
gpt4 key购买 nike

我想在 (this is)?.??.??(an)?.??.??(example sentence) 正则表达式中的每个组之间允许任何 0 到 2 个字符.它应该匹配以下字符串中的粗体文本:

blah blah. An example sentence
blah blah. This is an example sentence
Something something Example sentence

现在,在第一个示例中,匹配项是 ah。例句。我想在“。”前加上2个问号。意味着正则表达式引擎更愿意匹配 0 个字符。

我在 MS Word 的 VBA 中使用正则表达式,由 CreateObject("vbscript.regexp") 实现,据我所知,它使用了 VBScript 正则表达式风格,据我所知,它是与 JavaScript 风格相同。

最佳答案

When searching 0020002101 should 2.??.??.??101 not prefer 2101 to 20002101?

Regex 引擎不能“偏好”任何东西。它从左到右匹配。一旦找到 2(第一个 2),它就会开始匹配后续的子模式,并在找到匹配项时将其返回。

在您的情况下,您需要在可选组中使用 .{0,2}

(this is.{0,2})?(an.{0,2})?(example sentence)
^^^^^^ ^^^^^^

参见 regex demo .

如果可选字符串的顺序很重要,请将它们嵌套:

(this is.{0,2}(an.{0,2})?)?(example sentence)

参见 another regex demo .此正则表达式将仅匹配 an 后有 0 到 2 个字符,前提是 this is 在它之前找到 0 到 2 个字符。

关于javascript - 使用可选组获取最短匹配的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41696380/

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