Продолжение темы. Пара дополнений + пара примеров.
Классы пространства имен System.Text.RegularExpressions
Capture - Представляет результаты из отдельной записи части выраже-
ния. Capture представляет одну подстроку для отдельной успешной записи.
CaptureCollection - Представляет последовательность подстрок записи.
CaptureCollection возвращает набор записей, сделанных одной группой записи.
Group - Group представляет результаты отдельной группы записи.
Группа записи может записать ноль, одну или более строк в одно совпадение из-за кванторов, таким образом Group предоставляет коллекцию объектов Capture.
GroupCollection - Представляет коллекцию групп записи. GroupCollection возвращает набор групп записи в одном совпадении.
Match - Представляет результаты из отдельного совпадения регулярного выражения.
MatchCollection - Представляет набор успешных совпадений, обнаруженных путем итеративного применения шаблона регулярного выражения к входной строке.
Regex - Представляет постоянное регулярное выражение.
RegexCompilationInfo - Представляет сведения о регулярном выражении, используемые для компиляции регулярного выражения в отдельную сборку.
RegexRunner - Класс RegexRunner является базовым классом для скомпилированных регулярных выражений.
RegexRunnerFactory - Создает класс RegexRunner для скомпилированного регулярного выражения.
Примеры:
Данный метод принимает входной e-mail и выдает true/false в зависимости от того, валидное ли имя адреса электронной почты. В данном случае метод вернет false поскольку в адресе электронной почты не указан домен.
Получает входную строку и с помощью так называемых групп находит все вхождения между парами круглых скобок «(...)».
Получаем тег <img src="..." /> и заменить его содержимое
Проверка адресса (сайтов). Последний вариант имеет ограничения от 5 до 50 символов.
Классы пространства имен System.Text.RegularExpressions
Capture - Представляет результаты из отдельной записи части выраже-
ния. Capture представляет одну подстроку для отдельной успешной записи.
CaptureCollection - Представляет последовательность подстрок записи.
CaptureCollection возвращает набор записей, сделанных одной группой записи.
Group - Group представляет результаты отдельной группы записи.
Группа записи может записать ноль, одну или более строк в одно совпадение из-за кванторов, таким образом Group предоставляет коллекцию объектов Capture.
GroupCollection - Представляет коллекцию групп записи. GroupCollection возвращает набор групп записи в одном совпадении.
Match - Представляет результаты из отдельного совпадения регулярного выражения.
MatchCollection - Представляет набор успешных совпадений, обнаруженных путем итеративного применения шаблона регулярного выражения к входной строке.
Regex - Представляет постоянное регулярное выражение.
RegexCompilationInfo - Представляет сведения о регулярном выражении, используемые для компиляции регулярного выражения в отдельную сборку.
RegexRunner - Класс RegexRunner является базовым классом для скомпилированных регулярных выражений.
RegexRunnerFactory - Создает класс RegexRunner для скомпилированного регулярного выражения.
Примеры:
String e_mail = "name@gmail."; public bool isValidMail(string e_mail) { string expr = "[.\\-_a-z0-9]+@([a-z0-9][\\-a-z0-9]+\\.)+[a-z]{2,6}"; Match isMatch = Regex.Match(e_mail, expr, RegexOptions.IgnoreCase); return isMatch.Success; }
Данный метод принимает входной e-mail и выдает true/false в зависимости от того, валидное ли имя адреса электронной почты. В данном случае метод вернет false поскольку в адресе электронной почты не указан домен.
public List<string> GetWithIn(string str) { List<string> rez = new List<string>(); Regex pattern = new Regex(@"(?<=\().*?(?=\))"); foreach (Match m in pattern.Matches(str)) if(m.Success) //меж скобок ( ) rez.Add(m.Groups["val"].Value); return rez; }
Получает входную строку и с помощью так называемых групп находит все вхождения между парами круглых скобок «(...)».
String GetReplacedText(string text) { //ищем значение для тега src Regex re = new Regex( @"(?<=<img .*?src\s*=\s*"")[^""]+(?="".*?>)"); //или //@"\< *[img][^\>]*[src] *= *[\"\']{0,1}([^\"\'\ >]*)" //получаем набор значений для аттрибута src MatchCollection mc = re.Matches(text); List<string> al = new List<string>(); foreach (Match m in mc)//пробегаем по набору аттрибутов src //выделяем только расширение файла al.Add(System.IO.Path.GetExtension(m.Value)); int k = 0; string replacedText = re.Replace(text, delegate(Match m) { return "Images/"+(++k).ToString()+al[k-1]; } ); return replacedText; }
Получаем тег <img src="..." /> и заменить его содержимое
@"^[a-zA-Zа-яА-Я,-;:]+$" или @"[a-zA-Zа-яА-Я,-;:]{5,50}"
Проверка адресса (сайтов). Последний вариант имеет ограничения от 5 до 50 символов.
string newStr = Regex.Replace("Обычна 12 строка с 75 числами", @"\D", string.Empty);
Удаление чисел (цифр) из текста
Комментариев нет:
Отправить комментарий