方括号内的交替运算符不起作用

IT技术 javascript regex
2021-01-23 21:58:37

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

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

我希望能够匹配除 'wd' 之外还包含字符串 'word' 或 'qw' 的字符串,但我尝试的一切都没有成功。我以为我可以执行以下操作:

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

但它似乎不起作用。

2个回答

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

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

+1,但是...更进一步,您可以添加“替换(wd|word|qw)qw|w(?:or)?d
2021-03-30 21:58:37

你的表情:

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

确实需要做一些修改,包括[wd|word|qw](wd|word|qw) 摆脱多余的{1},就像这样:

.*baidu.com.*[/?].*(wd|word|qw)=

但是您还需要了解表达式 ( .*baidu.com.*[/?].*)的第一部分将匹配baidu.com hello what spelling/handle?????????hbaidu-com/什至类似的内容lkas----jhdf lkja$@@!3hdsfbaidugcomlaksjhdf.[($?lakshf,因为点 ( .) 匹配除换行符以外的任何字符……要匹配文字点,您必须使用反斜杠对其进行转义(喜欢\.

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