2010-06-04 6 views
1

мне нужна помощь с написанием проверки регулярных выражений для проверки определенного значения здесь является то, что у меня есть, но не работаетпроверка RegEx, если строка содержит определенное значение

Regex exists = new Regex(@"MyWebPage.aspx"); 
Match m = exists.Match(pageUrl); 

if(m) 
{ 
    //perform some action 
} 

Так что я в основном хочет знать когда переменная pageUrl будет содержать значение MyWebPage.aspx , также можно комбинировать эту проверку, чтобы охватить несколько случаев, например MyWebPage.aspx, MyWebPage2.aspx, MyWebPage3.aspx

Спасибо!

ответ

3

попробовать это

"MyWebPage\d*\.aspx$" 

Это позволит для любых страниц, называемых MyWebPage # .aspx где # 1 или больше числа.

+1

Отсутствует случай без цифр и не учитывает параметры строки запроса. – jvenema

+0

спасибо @jvenema Я изменил + на * –

1
if (Regex.Match(url, "MyWebPage[^/]*?\\.aspx")) .... 

Это будет соответствовать любой форме MyWebPageXXX.aspx (где XXX равно нулю или более символов). Он не будет соответствовать MyWebPage/test.aspx однако

1

Этот RegEx должен работать в случае, если MyWebPage.aspx находится в вашей странице url, хотя и случайно. Вам действительно нужно заменить точку (.) На \., чтобы избежать ее.

Regex exists = new Regex(@"MyWebPage\.aspx"); 

Если вы хотите дополнительно соответствовать один номер после немного MyWebPage, затем искать (по желанию) наличие \ D:

Regex exists = new Regex(@"MyWebPage\d?\.aspx"); 
1

Я не буду размещать регулярное выражение, как и другие есть хорошие, но одна вещь, которая может быть проблемой, - это случай персонажа. Регулярные выражения по умолчанию чувствительны к регистру. Класс Regex имеет статическую перегрузку функции Match (а также Matches и IsMatch), которая принимает параметр RegexOptions, позволяющий указать, хотите ли вы игнорировать регистр.

Например, я не знаю, как вы получаете свою pageUrl переменную, но в зависимости от того, как пользователь вводил URL-адрес в своем браузере, вы можете получить разные оболочки, что может привести к тому, что Regex не найдет соответствия.

+0

Хороший звонок - я забыл об этом лакомый кусочек. –

Смежные вопросы