Url重写正则表达式帮助

时间:2010-06-02 02:57:09

标签: regex url-rewriting

匹配此网址需要哪些正则表达式:

匹配度:

1234
1234/
1234/article-name

不匹配:

1234absd
1234absd/article-name
1234/article.aspx
1234/any.dot.in.the.url

3 个答案:

答案 0 :(得分:1)

^\d+(/?)|(/[a-zA-Z-]+)$

这可能有效。或不。希望它有所帮助

答案 1 :(得分:1)

您可以尝试:

^\d+(?:\/[\w-]*)?$

这匹配字符串开头的非空数字序列,后跟可选后缀/和一个(可能为空)字符序列(字母,数字,下划线)和-

匹配(see on rubular):

1234
1234/
1234/article-name
42/section_13

但不是:

1234absd
1234absd/article-name
1234/article.aspx
1234/any.dot.in.the.url
007/james/bond

没有括号正则表达式

您不需要这样做,但如果您根本不能使用括号,则可以随时扩展到更改:

^\d+$|^\d+\/$|^\d+\/[\w-]*$

答案 2 :(得分:0)

希望这会帮助你........

        string data = "1234/article-name";
        Regex Constant = new Regex("(?<NUMBERS>([0-9]+))?(//)?(?<DATA>([a-zA-Z-]*))?");
        MatchCollection mc;
        mc = Constant.Matches(data,0);
        if (mc.Count>0)
        {
            for (int l_nIndex = 0; l_nIndex < mc.Count; l_nIndex++)
            {
                string l_strNum = mc[l_nIndex].Groups["NUMBERS"].Value;
                string l_strData = mc[l_nIndex].Groups["DATA"].Value;
            }
        }