您的位置:程序门 -> web 开发 -> asp



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


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


这个正则表达式怎样简化一点?[已结贴,结贴人:wgybb]
发表于:2007-07-20 10:22:49 楼主

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

小弟我刚接触正则表达式,不太熟练,大家帮我看一下,这个正则表达式怎么简化一点.
发表于:2007-07-20 10:34:091楼 得分:10
举个例子吧
==============================================================================
        旧货交易栏目
        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   了

你想把所有正则写成一个?
发表于:2007-07-20 10:37:412楼 得分:0
现在是6个栏目,需要6组的表达式去实现.
能不能把6个栏目,缩小到一组呢,或者更少的.
发表于:2007-07-20 10:38:553楼 得分:0
比如:
房屋租售栏目
        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=转让
这个栏目的,写了这么多,能不能再压缩一下呢?
发表于:2007-07-20 10:39:214楼 得分:10
应该可以的
举个例子
=====================================
旧货交易栏目
        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))


我试试把六个合并在一起看看
发表于:2007-07-20 10:41:315楼 得分:10
这些正则都不复杂了。没的优化了。
发表于:2007-07-20 10:42:046楼 得分:10
我试试把六个合并在一起看看


正则不宜过长
发表于:2007-07-20 10:48:247楼 得分:10
分析了下,发现你这正则这样写有问题的
rewriterule   /info/list1_(\d+)_(\d+)_0\.html   /old/index.asp?sid=$1&page=$2
===============================

很多东西都匹配不了   -   -!
发表于:2007-07-20 10:50:168楼 得分:0
可以匹配的呀.
rewriterule   /info/list1_(\d+)_(\d+)_0\.html   /old/index.asp?sid=$1&page=$2

$1:这个代表小类的id
$2:这个代表分页编号
后面那个0:代表的是方式,比如是"求购"还是"出售"


快速检索

最新资讯
热门点击