RegEx проверяет, содержит ли строка определенное значение - PullRequest
1 голос
/ 04 июня 2010

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

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

Спасибо!

Ответы [ 4 ]

3 голосов
/ 04 июня 2010

попробуйте

"MyWebPage\d*\.aspx$" 

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

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

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

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

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

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

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

Если вы хотите опционально сопоставить одно число после бита MyWebPage, найдите (необязательно) наличие \ d:

Regex exists = new Regex(@"MyWebPage\d?\.aspx"); 
1 голос
/ 04 июня 2010
if (Regex.Match(url, "MyWebPage[^/]*?\\.aspx")) ....

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

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