gpt4 book ai didi

javascript - 正则表达式与 Javascript 匹配

转载 作者:行者123 更新时间:2023-11-28 14:42:25 24 4
gpt4 key购买 nike

我想提取以下字符串的部分内容:

#string-to-extract
#string-to-extract?foo1=fooA
#string-to-extract?foo1=fooA&foo2=fooB

我有以下正则表达式:

var pattern = /#(.*)\?{0,1}/;

但是下面这行代码:

string.match(pattern);

为我提供上述字符串的以下结果:

#string-to-extract     =>      [1]string-to-extract
#string-to-extract?foo1=fooA => [1]string-to-extract?foo1=fooA
#string-to-extract?foo1=fooA&foo2=fooB => [1]string-to-extract?foo1=fooA&foo2=fooB

对于所有这些,我希望组 1 始终仅是要提取的字符串。我的正则表达式做错了什么?

最佳答案

.* 意思是“尽你所能,不要停止”。换句话说,在您指定要查找问号之前,您的 ? 会作为第 1 组的一部分进行匹配。相反,您希望匹配除问号之外的所有内容。像这样:

/#([^?]+)\??/;

[^?] 是一个字符类,含义是“匹配除此字符列表之外的任何内容”(在您的情况下是字面问号)。我使用了 + 而不是 *,它表示 1 或更多。您可以使用另一个 ? 而不是 {0,1},这意味着您的文字 ? 可以存在或不存在

关于javascript - 正则表达式与 Javascript 匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47541311/

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