Подсказки на компьютерную тематику

Можно подсмотреть, если забыли…

Как искать с помощью регулярных выражений

Условные обозначения и примеры регулярных выражений

Правила регулярных выражений

    Некоторые требования и условные обозначения:

  • символы @ _ – .= требуется экранировать знаком \
  • знак i в конце строки означает – не различать строчные и заглавные буквы
  • символ + означает повторение символа один или больше раз
  • символ * означает повторение символа ноль или больше раз
  • символ ? означает повторение символа ноль или один раз
  • значения в фигурных скобках {a,b} означает повторение символа не менее a и не более b раз
  • символы в скобках [] означают выбор одного любого символа из них
  • символ ^ означает кроме

Образцы регулярных выражений

    Следующее выражение сработает:

  • /\@\.[0-9]/ при последовательном вводе сразу знаков @. и одной из цифр, например @.6
  • /[\@\.0-9]/ при вводе одного любого знака из @ или . или цифры от 0 до 9, например @
  • /[a-z]/i при вводе одного любого символа от a до z или от A до Z, например h
  • /[^a-z]/ при вводе одного любого символа кроме от a до z, например 4
  • /[^\@\_\-\.a-zA-Z0-9]/ при вводе одного любого символа кроме @ _ – . от a до z или A-Z или 0-9, например <
  • /[^a-z+]/ при вводе любого символа кроме от a до z, например 5
  • /[^(a-z0-9)+]/ на любой символ кроме от a до z или от 0 до 9, например =
  • /[^(a-zA-Z0-9)+\@]/ на любой символ кроме от a до z или от A до Z или от 0 до 9 и кроме @, например /
  • /^([a-zA-Z0-9\-\_\.]+\@[a-z]+\.[a-z]+)/ на e-mail
  • /[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/ на IP адрес

Пример поиска по регулярному выражению на JS


let regexp = /^([a-zA-Z0-9\-\_\.]+\@[a-z]+\.[a-z]+)/i;
document.getElementById('conclude').innerHTML=regexp.test('example');

//let – объявление переменной, ее видно только внутри {}
//test – поиск совпадений, покажет true или false

Пример разделения строки на несколько подстрок по регулярному выражению на PHP


//.-знак разделения строки
//123.45-строка для разделения
// 123 и 45-результат разделения
$array = preg_split("/\./", 123.45);
print_r($array[0]);//123
print_r($array[1]);//45

Пример поиска подстроки в строк по регулярному выражению на PHP


//поиск по шаблону
//шаблон для логина
$patternlogin = '/[a-zA-Z0-9]+[\=*]/';
//шаблон для ip
$patternip = '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/';
preg_match($patternlogin, $fortranslate, $login);
preg_match($patternip, $fortranslate, $ip);
return array ($login[0],$ip[0]);

Как искать с помощью регулярных выражений

Условные обозначения и примеры регулярных выражений

Правила регулярных выражений

    Некоторые требования и условные обозначения:

  • символы @ _ – .= требуется экранировать знаком \
  • знак i в конце строки означает – не различать строчные и заглавные буквы
  • символ + означает повторение символа один или больше раз
  • символ * означает повторение символа ноль или больше раз
  • символ ? означает повторение символа ноль или один раз
  • значения в фигурных скобках {a,b} означает повторение символа не менее a и не более b раз
  • символы в скобках [] означают выбор одного любого символа из них
  • символ ^ означает кроме

Образцы регулярных выражений

    Следующее выражение сработает:

  • /\@\.[0-9]/ при последовательном вводе сразу знаков @. и одной из цифр, например @.6
  • /[\@\.0-9]/ при вводе одного любого знака из @ или . или цифры от 0 до 9, например @
  • /[a-z]/i при вводе одного любого символа от a до z или от A до Z, например h
  • /[^a-z]/ при вводе одного любого символа кроме от a до z, например 4
  • /[^\@\_\-\.a-zA-Z0-9]/ при вводе одного любого символа кроме @ _ – . от a до z или A-Z или 0-9, например <
  • /[^a-z+]/ при вводе любого символа кроме от a до z, например 5
  • /[^(a-z0-9)+]/ на любой символ кроме от a до z или от 0 до 9, например =
  • /[^(a-zA-Z0-9)+\@]/ на любой символ кроме от a до z или от A до Z или от 0 до 9 и кроме @, например /
  • /^([a-zA-Z0-9\-\_\.]+\@[a-z]+\.[a-z]+)/ на e-mail
  • /[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/ на IP адрес

Пример поиска по регулярному выражению на JS


let regexp = /^([a-zA-Z0-9\-\_\.]+\@[a-z]+\.[a-z]+)/i;
document.getElementById('conclude').innerHTML=regexp.test('example');

//let – объявление переменной, ее видно только внутри {}
//test – поиск совпадений, покажет true или false

Пример разделения строки на несколько подстрок по регулярному выражению на PHP


//.-знак разделения строки
//123.45-строка для разделения
// 123 и 45-результат разделения
$array = preg_split("/\./", 123.45);
print_r($array[0]);//123
print_r($array[1]);//45

Пример поиска подстроки в строк по регулярному выражению на PHP


//поиск по шаблону
//шаблон для логина
$patternlogin = '/[a-zA-Z0-9]+[\=*]/';
//шаблон для ip
$patternip = '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/';
preg_match($patternlogin, $fortranslate, $login);
preg_match($patternip, $fortranslate, $ip);
return array ($login[0],$ip[0]);