URL переписывает справку Regex - PullRequest
0 голосов
/ 02 июня 2010

Какие регулярные выражения мне нужны для соответствия этому URL:

Match:

1234
1234/
1234/article-name

Не соответствует:

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

Ответы [ 3 ]

1 голос
/ 02 июня 2010

Вы можете попробовать:

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

Это соответствует непустой последовательности цифр в начале строки, за которой следует необязательный суффикс / и (возможно, пустая) последовательность символов слова (буквы, цифры, подчеркивание) и -.

Это соответствует ( см. На рубрике ):

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-]*$
1 голос
/ 02 июня 2010
^\d+(/?)|(/[a-zA-Z-]+)$

Это может сработать. или нет. Надеюсь, это поможет

0 голосов
/ 02 июня 2010

Надеюсь, это поможет вам ........

        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;
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...