读书人

这个正则表达式怎样简化一点?该如何解

发布时间: 2012-03-13 11:21:12 作者: rapoo

这个正则表达式怎样简化一点?

旧货交易栏目
RewriteRule /info/list1_(\d+)_(\d+)_0\.html /old/index.asp?sID=$1&page=$2
RewriteRule /info/list1_(\d+)_(\d+)_1\.html /old/index.asp?sID=$1&page=$2&sType=求购
RewriteRule /info/list1_(\d+)_(\d+)_2\.html /old/index.asp?sID=$1&page=$2&sType=出售
RewriteRule /info/list1_(\d+)\.html /old/view.asp?ID=$1

  房屋租售栏目
RewriteRule /info/list2_(\d+)_(\d+)_0\.html /house/index.asp?sID=$1&page=$2
RewriteRule /info/list2_(\d+)_(\d+)_1\.html /house/index.asp?sID=$1&page=$2&sType=出租
RewriteRule /info/list2_(\d+)_(\d+)_2\.html /house/index.asp?sID=$1&page=$2&sType=求租
RewriteRule /info/list2_(\d+)_(\d+)_3\.html /house/index.asp?sID=$1&page=$2&sType=出售
RewriteRule /info/list2_(\d+)_(\d+)_4\.html /house/index.asp?sID=$1&page=$2&sType=求购
RewriteRule /info/list2_(\d+)_(\d+)_5\.html /house/index.asp?sID=$1&page=$2&sType=合租
RewriteRule /info/list2_(\d+)_(\d+)_6\.html /house/index.asp?sID=$1&page=$2&sType=转让
RewriteRule /info/list2_(\d+)\.html /house/view.asp?ID=$1

  物品买卖栏目
RewriteRule /info/list3_(\d+)_(\d+)_0\.html /buy/index.asp?sID=$1&page=$2
RewriteRule /info/list3_(\d+)_(\d+)_1\.html /buy/index.asp?sID=$1&page=$2&sType=求购
RewriteRule /info/list3_(\d+)_(\d+)_2\.html /buy/index.asp?sID=$1&page=$2&sType=出售
RewriteRule /info/list3_(\d+)\.html /buy/view.asp?ID=$1

  电脑网络栏目
RewriteRule /info/list4_(\d+)_(\d+)_0\.html /pc/index.asp?sID=$1&page=$2
RewriteRule /info/list4_(\d+)_(\d+)_1\.html /pc/index.asp?sID=$1&page=$2&sType=求购
RewriteRule /info/list4_(\d+)_(\d+)_2\.html /pc/index.asp?sID=$1&page=$2&sType=出售
RewriteRule /info/list4_(\d+)\.html /pc/view.asp?ID=$1

  求职招聘栏目
RewriteRule /info/list5_(\d+)_(\d+)_0\.html /job/index.asp?sID=$1&page=$2
RewriteRule /info/list5_(\d+)_(\d+)_1\.html /job/index.asp?sID=$1&page=$2&sType=求职
RewriteRule /info/list5_(\d+)_(\d+)_2\.html /job/index.asp?sID=$1&page=$2&sType=招聘
RewriteRule /info/list5_(\d+)\.html /job/view.asp?ID=$1

  生活服务栏目
RewriteRule /info/list6_(\d+)_(\d+)_0\.html /other/index.asp?sID=$1&page=$2
RewriteRule /info/list6_(\d+)_(\d+)_1\.html /other/index.asp?sID=$1&page=$2&sType=提供
RewriteRule /info/list6_(\d+)_(\d+)_2\.html /other/index.asp?sID=$1&page=$2&sType=寻求
RewriteRule /info/list6_(\d+)\.html /other/view.asp?ID=$1

小弟我刚接触正则表达式,不太熟练,大家帮我看一下,这个正则表达式怎么简化一点.

------解决方案--------------------


举个例子吧
==============================================================================
旧货交易栏目
RewriteRule /info/list1_(\d+)_(\d+)_0\.html /old/index.asp?sID=$1&page=$2
==============================================================================
这个正则可以匹配
RewriteRule /info/list1_15_85_0\.html /old/index.asp?sID=$1&page=$2
这种形式的

但不知道你想从那里开始简化?
个人感觉这个正则匹配已经很严谨了,因为像这些字符你都限制RewriteRule 了

你想把所有正则写成一个?
[解决办法]
应该可以的
举个例子
=====================================
旧货交易栏目
RewriteRule /info/list1_(\d+)_(\d+)_0\.html /old/index.asp?sID=$1&page=$2
RewriteRule /info/list1_(\d+)_(\d+)_1\.html /old/index.asp?sID=$1&page=$2&sType=求购
RewriteRule /info/list1_(\d+)_(\d+)_2\.html /old/index.asp?sID=$1&page=$2&sType=出售
RewriteRule /info/list1_(\d+)\.html /old/view.asp?ID=$1
========================================================
合并成这样的
RewriteRule /info/list1_(\d+)_(\d+)((_0\.html /old/index.asp?sID=$1&page=$2)|(_1\.html /old/index.asp?sID=$1&page=$2&sType=求购)|(_2\.html /old/index.asp?sID=$1&page=$2&sType=出售)|(\.html /old/view.asp?ID=$1))


我试试把六个合并在一起看看
[解决办法]
这些正则都不复杂了。没的优化了。
[解决办法]
我试试把六个合并在一起看看


正则不宜过长
[解决办法]
分析了下,发现你这正则这样写有问题的
RewriteRule /info/list1_(\d+)_(\d+)_0\.html /old/index.asp?sID=$1&page=$2
===============================

很多东西都匹配不了 - -!

读书人网 >ASP

热点推荐