gpt4 book ai didi

regex - 从字符捕获到第一个句点的正则表达式

转载 作者:行者123 更新时间:2023-12-02 06:16:38 26 4
gpt4 key购买 nike

我的正则表达式字符串看起来像

您的订单#Q-111-111-1111。账单金额为 $100.50

如何提取订单号,即“#”和第一个“.”之间的字符串

Q-111-111-1111

我试过:

/#(.*[^.])[.].+?/

但它捕获到最后一个点字符。我确定,我需要使用非贪婪匹配,但我无法做到这一点。

最佳答案

您可以简单地使用以下正则表达式:

#(.*?)\.

*greedy - 当您将 ? 附加到 时,它会导致引擎尽可能频繁地重复前面的标记.*,它将是懒惰的(贪婪的),并且会匹配到第一个点。

为了证明这一点,让我们举个例子:

  • #(.*)\. 应用于#12-34.234-3.234。 Hello World

    .* 将首先匹配所有内容,直到字符串结尾(d 字符),然后它会尝试匹配点,但它不存在,所以它会一直回溯直到匹配4,然后找到点,匹配的字符串是#1234.2343.234

  • #(.*?)\. 应用于#12-34.234-3.234。 Hello World

    .*? 只会匹配到 4,然后找到点并匹配,惰性导致它停止搜索更多要消耗的 token

关于regex - 从字符捕获到第一个句点的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28738024/

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