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

时间:2012-04-04 22:03:05

标签: javascript regex

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

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

除了'wd'之外,我希望能够匹配具有字符串'word'或'qw'的字符串,但我尝试的所有内容都不成功。我以为我可以做类似以下的事情:

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

但它似乎不起作用。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

你的表达:

.*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匹配,因为点( .)匹配除换行符之外的任何字符...以匹配文字点,您必须使用反斜杠(如\.

来转义它

您可以采用多种方法来匹配网址中的内容,但如果您告诉我们您要执行或完成的工作,我们可以为您提供更多帮助 - 也许正则表达式不是最佳解决方案或( EDIT < / strong>)只有 part 的最佳解决方案?