Javascript 方括号内的交替运算符不工作

Javascript 方括号内的交替运算符不工作,javascript,regex,Javascript,Regex,我正在创建一个javascript正则表达式来匹配搜索引擎字符串中的查询。我有一个交替的问题。我有以下正则表达式: .*baidu.com.*[/?].*wd{1}= 我希望能够匹配除了“wd”之外还有字符串“word”或“qw”的字符串,但我尝试的一切都不成功。我想我可以做如下事情: .*baidu.com.*[/?].*[wd|word|qw]{1}= 但它似乎不起作用 将[wd | word | qw]替换为(wd | word | qw)或(?:wd | word | qw) []表

我正在创建一个javascript正则表达式来匹配搜索引擎字符串中的查询。我有一个交替的问题。我有以下正则表达式:

.*baidu.com.*[/?].*wd{1}=
我希望能够匹配除了“wd”之外还有字符串“word”或“qw”的字符串,但我尝试的一切都不成功。我想我可以做如下事情:

.*baidu.com.*[/?].*[wd|word|qw]{1}=

但它似乎不起作用

[wd | word | qw]
替换为
(wd | word | qw)
(?:wd | word | qw)

[]
表示字符集,
()
表示逻辑分组。

您的表达式:

.*baidu.com.*[/?].*[wd|word|qw]{1}=
确实需要一些更改,包括将
[wd | word | qw]
更改为
(wd | word | qw)
,并去掉冗余的
{1}
,如下所示:

.*baidu.com.*[/?].*(wd|word|qw)=
但是你也需要了解你的表达式的第一部分(
*baidu.com.*[/?].
)将匹配
baidu.com你好,拼写/处理是什么?
hbaidu com/
甚至类似于
lkas---jhdf lkja$@!3hdsfbaidugcomlaksjhdf.[($?lakshf
),因为点(
)匹配除换行符以外的任何字符…要匹配文字点,必须用反斜杠转义它(如
\。


有几种方法可以用来匹配URL中的内容,但如果您告诉我们您正在尝试做什么或完成什么,我们可以为您提供更多帮助-也许正则表达式不是最佳解决方案,或者(编辑)只是最佳解决方案的一部分?

[]
创建字符类,使用
(wd | word | qw)
相反。也要摆脱那种
{1}
,它是无用的。稍微多了解一下你正在努力完成的事情会帮助我们帮你更多:D+1,但是……更进一步,你可以添加“用
qw(?:或)?D替换
(wd | word | qw)