正则表达式的数值判断
正则表达式中是不能比较数值的。
为了做ISAPI_Rewrite的规则,需要提取URL中的数值——栏目ID。自然会想到用数值来提取,例如取得1到9中的任何一个数的正则是这样的:
[1-9]
但是你却不能使用这种方式取得10-30的值,像这样:
[10-30]
因为正则中数字也当做字符来处理。所以要取得多位数字的范围,需要逐个数位进行提取,像10到30的数字,需要这样写:
([1-2][0-9]|30)
麻烦一点,不过比我想象的最糟糕的想法要好。最糟糕的写法是:
10|11|12……这样罗列出来,呵呵
另外,推荐使用ISAPI_Rewrite3.0版提供的正则测试工具,很好用,免费版中也有提供。
对正则有兴趣的朋友,推荐来这里看看正则教程。