【发布时间】:2011-06-26 15:30:15
【问题描述】:
我正在尝试为 URL 匹配编写正则表达式,但它不起作用。
主题网址是...
var subject = "http://encore.lsbu.ac.uk/iii/encore/search/C%257CSab%257COrightresult%257CU1?lang=eng&suite=pearl";
正则表达式是...
var regex = /http:\/\/encore.lsbu.ac.uk\/iii\/encore\/search\/C%257CS[a-z][A-Z][0-9]%257COrightresult%257CU1?lang=eng&suite=pearl/i;
我正在使用 JavaScript 对其进行测试。
var answer = regex.test(subject);
// answer is false
目标是匹配任何带有正则表达式的 URL,该正则表达式在字符串中间更改了关键字,但整个字符串与 URL 匹配。换句话说,除了不检查关键字部分之外,两个字符串都应该匹配。我做错什么了吗?
【问题讨论】:
-
[a-z][A-Z][0-9]是一个小写字母,后跟一个大写字母,后跟一个数字。[a-zA-Z0-9]是它们的组合,但只有一个字符。[a-z][A-Z][0-9]*是零个或多个这些字符。等等等等..是时候阅读这个人了.. -
目标是整个字符串应该被匹配,除了它的一部分应该被转义(不匹配),因为它是关键字并且它是变量。
-
转义是什么意思??
-
更改此部分:
...C%257CS[^%]+%... -
在正则表达式 [a-z][A-Z][0-9] 中,这部分不应匹配,但应匹配整个字符串。 [a-z][A-Z][0-9] 这是可变的,可以是任何字符、数字或任何可以从键盘输入的内容。
标签: javascript regex