首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

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

2012-03-13 
这个正则表达式怎样简化一点?旧货交易栏目RewriteRule/info/list1_(\d+)_(\d+)_0\.html/old/index.asp?sID

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

        旧货交易栏目
        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
===============================

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

热点排行