Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Практическое руководство. Поиск строк с помощью регулярных выражений (Руководство по программированию в C#)




Обновлен: Ноябрь 2007

Класс System.Text.RegularExpressions..::.Regex можно использовать для поиска строк. Поиск может отличаться по сложности и быть как простым, так и интенсивно использовать регулярные выражения. Ниже приведены два примера поиска строк с помощью класса Regex. Дополнительные сведения см. в разделе Регулярные выражения в .NET Framework.

Пример

Следующий пример кода является консольным приложением, которое выполняет простой поиск строк в массиве без учета регистра. Статический метод Regex..::.IsMatch выполняет поиск заданной строки и строки, содержащей шаблон поиска. В этом случае третий аргумент указывает, что регистр знаков следует игнорировать. Дополнительные сведения см. в разделе System.Text.RegularExpressions..::.RegexOptions.

Язык C#

 

Копировать код

class TestRegularExpressions

{

static void Main()

{

   string[] sentences =

   {

       "cow over the moon",

       "Betsy the Cow",

       "cowering in the corner",

       "no match here"

   };

 

   string sPattern = "cow";

 

   foreach (string s in sentences)

   {

       System.Console.Write("{0,24}", s);

 

       if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))

       {

           System.Console.WriteLine(" (match for '{0}' found)", sPattern);

       }

       else

       {

           System.Console.WriteLine();

       }

   }

 

   // Keep the console window open in debug mode.

   System.Console.WriteLine("Press any key to exit.");

   System.Console.ReadKey();

 

}

}

/* Output:

       cow over the moon (match for 'cow' found)

      Betsy the Cow (match for 'cow' found)

      cowering in the corner (match for 'cow' found)

      no match here

*/

Следующий пример кода является консольным приложением, которое использует регулярные выражения для проверки формата каждой строки массива. Для выполнения проверки требуется преобразование каждой строки в формат телефонного номера, в котором три группы цифр разделены дефисами, первые две группы содержат три цифры, а третья группа — четыре цифры. Для этого используется регулярное выражение ^\\d{3}-\\d{3}-\\d{4}$. Дополнительные сведения см. в разделе Элементы языка регулярных выражений.

Язык C#

 

Копировать код

class TestRegularExpressionValidation

{

static void Main()

{

   string[] numbers =

   {

       "123-456-7890",

       "444-234-22450",

       "690-203-6578",

       "146-893-232",

       "146-839-2322",

       "4007-295-1111",

       "407-295-1111",

       "407-2-5555",

   };

 

   string sPattern = "^\\d{3}-\\d{3}-\\d{4}$";

 

   foreach (string s in numbers)

   {

       System.Console.Write("{0,14}", s);

 

       if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern))

       {

           System.Console.WriteLine(" - valid");

       }

       else

       {

           System.Console.WriteLine(" - invalid");

       }

   }

 

   // Keep the console window open in debug mode.

   System.Console.WriteLine("Press any key to exit.");

   System.Console.ReadKey();

}

}

/* Output:

123-456-7890 - valid

444-234-22450 - invalid

690-203-6578 - valid

  146-893-232 - invalid

146-839-2322 - valid

4007-295-1111 - invalid

407-295-1111 - valid

   407-2-5555 - invalid

*/

 

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 168.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...