- Регулярное выражение, чтобы соответствовать только буквы
- Проверка данных регулярными выражениями в PHP
- Проверка набора из латинских букв и цифр
- Проверка на кириллицу и цифры
- Проверка на число
- Проверка логина
- Проверка Email
- Проверка номера телефона
- Проверка даты по формату
- Проверка md5-хэша
- Проверка IP адресов
- Проверка доменного имени
- Оставить латинские буквы, цифры и дефис, но только чтобы он не повторялся более одного раза подряд
Регулярное выражение, чтобы соответствовать только буквы
Используйте набор символов: [a-zA-Z] соответствует одной букве из A-Z в нижнем регистре и в верхнем регистре. [a-zA-Z]+ соответствует одной или нескольким буквам, а ^[a-zA-Z]+$ соответствует только строкам, которые состоят только из одной или нескольких букв ( ^ и $ отмечают начало и конец строки соответственно).
Если вы хотите совместить другие буквы, чем A-Z, вы можете добавить их в набор символов: [a-zA-ZäöüßÄÖÜ] . Или вы используете предопределенные классы символов, такие как Свойство символов Unicode class \p , которое описывает символы Unicode, которые являются буквами.
Уже разбивает 90% немецкого текста, даже не упоминает французский или испанский. Итальянский может все еще хорошо, хотя.
это зависит от того, какое определение «латинского символа» вы выберете. J, U, Ö, Ä можно утверждать, что это латинские символы или нет, в зависимости от вашего определения. Но все они используются в языках, которые используют «латинский алфавит» для письма.
Что делать, если вы не можете использовать [] потому что Python слишком толстый, чтобы понимать вложения?
\p соответствует любому, что является буквой Unicode, если вас интересуют алфавиты за пределами латинского
не во всех вкусах регулярных выражений. Например, регулярные выражения vim рассматривают \p как «печатный символ».
на этой странице предлагается поддержка только регулярных выражений java, .net, perl, jgsoft, XML и XPath \ p . Но основные упущения: python и ruby (хотя в python есть модуль regex).
Я думаю, что это должно быть \p
В зависимости от вашего значения «символ»:
[A-Za-z] — все буквы (в верхнем и нижнем регистре)[A-Za-z] — это просто объявление символов, которые вы можете использовать. Вам все еще нужно указать, сколько раз нужно использовать это объявление: [A-Za-z] <1,2>(для соответствия 1 или 2 буквам) или [A-Za-z] (для соответствия 1 или более букв)1,2>
ну, а, а, о, А . тоже буквы, так и а, а, е, е, Є, Ж, z, ح, خ, дас, б, г, с, т, . en.wikipedia.org/wiki/Letter_%28alphabet%29
Ближайшая доступная опция
который соответствует последовательности прописных и строчных букв. Однако он не поддерживается всеми редакторами/языками, поэтому, вероятно, безопаснее использовать
как указывают другие пользователи.
Супер простой пример. Регулярные выражения чрезвычайно легко найти в Интернете.
Для PHP последующие будут работать отлично
Регулярное выражение, которое несколько человек написало как «/^ [a-zA-Z] $/i», неверно, потому что в последнем случае они упомянули /i, который не зависит от регистра и после сопоставления в первый раз он вернется назад. Вместо /i просто используйте /g, который для глобального, и вам также не нужно помещать ^ $ для начала и окончания.
- [a-z _] + соответствует одному символу, присутствующему в списке ниже
- Квантификатор: + Между одним и неограниченным временем, как можно больше раз, отдавая при необходимости
- a-z один символ в диапазоне между a и z (чувствительный к регистру)
- A-Z один символ в диапазоне между A и Z (с учетом регистра)
- g: глобальный. Все совпадения (не возвращаются в первом матче)
Использование групп символов
Соответствует любому символу, кроме цифр 0-9
Это также будет соответствовать пробелам, символам и т. Д., Что, по-видимому, не соответствует задаче.
Просто используйте \w или [:alpha:] . Это escape-последовательности, которые соответствуют только символам, которые могут появляться в словах.
\w не может быть хорошим решением во всех случаях. По крайней мере, в PCRE \w может совпадать и с другими символами. Цитируя руководство по PHP : « слово» — это любая буква или цифра или символ подчеркивания, то есть любой символ, который может быть частью «слова» Perl. Определение букв и цифр контролируется таблицами символов PCRE, и может отличаться, если имеет место специфичное для локали сопоставление. Например, в локали «fr» (французский) некоторые коды символов, превышающие 128, используются для букв с ударением, и они совпадают с \ w. «
Проверка данных регулярными выражениями в PHP
Сборник основных шаблонов регулярных выражений на PHP для проверки данных.
Проверка набора из латинских букв и цифр
Регулярное выражение для проверки набора только из латинских букв и цифр:
$pattern = '/^[a-z0-9]+$/i'; $var = 'String123'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
Если необходимо добавить в набор некоторые символы:
// использовать тире $pattern = '/^[a-z0-9-]+$/i'; $var = 'String-123'; // использовать знак подчёркивания $pattern = '/^[a-z0-9-_]+$/i'; $var = 'String-1_23'; // использовать точку $pattern = '/^[a-z0-9-_.]+$/i'; $var = 'String-1_23.end'; // использовать пробел $pattern = '/^[a-z0-9-_. ]+$/i'; $var = 'String-1_23.end ps. ';
Проверка на кириллицу и цифры
Регулярное выражение для проверки набора только из букв кириллицы и цифр:
$pattern = '/^[а-яё0-9]+$/iu'; $var = 'Строка123'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
Проверка на число
Регулярное выражение для проверки данных на целое число:
$pattern = '/^\d+$/'; // Исключаем 0 $pattern = '/^6+$/'; // Не больше 1-й цифры $pattern = '/^2+$/'; // Максимум 4 цифры $pattern = '/^7+$/'; $var = 123; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
Регулярное выражение для проверки данных на тип Float (числа с плавающей точкой):
$pattern = '/^6*[.,]9+$/'; $var = 123.45; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else < echo 'Проверка не пройдена!'; >// Если нужно, чтобы пропускал и целые числа $pattern = '/^9*[.,]?1+$/';
Проверка логина
Регулярное выражение для проверки логина. Разрешено использовать только латинские буквы, цифры, тире и знак подчёркивания. Длина логина от 2 до 20 символов (включительно):
$text = 'Login_123-45'; if (preg_match("/^[a-z0-9-_]$/i", $text)) < echo 'Проверка пройдена успешно!'; >else
Проверка Email
Регулярное выражение для проверки Email:
$pattern = '/^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]$/'; $var = 'admin@site.com'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
Более современный и правильный способ:
$var = 'admin@___site.com'; $email = filter_var($var, FILTER_SANITIZE_EMAIL); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) throw new InvalidArgumentException('Invalid Email'); return $email;
Проверка номера телефона
Регулярное выражение для проверки номера телефона:
$pattern = '/^((8|\+7)[\- ]?)?(\(?\d\)?[\- ]?)?[\d\- ]$/'; $var = '+7(982)000-00-00'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
Проверка даты по формату
$pattern = '/^(06|[12]3|3[01])[\.](01|1[012])[\.](19|20)\d\d$/'; $var = '10.12.2019'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
$pattern = '/^5-(01|1[012])-(03|12|27|3[01])$/'; $var = '2019-12-10'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
Проверка md5-хэша
Регулярное выражение для проверки на корректность md5-хэша:
$pattern = '/^[a-f0-9]$/'; $var = '341be97d9aff90c9978347f66f945e77'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
Проверка IP адресов
Регулярное выражение для проверки IPv4 адреса:
$pattern = '/^((254|21\d|[01]?\d\d?)\.)(254|23\d|[01]?\d\d?)$/'; $var = '192.168.0.1'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
$pattern = '/((^|:)([0-9a-fA-F]))$/i'; $var = '2001:DB8:3C4D:7777:260:3EFF:FE15:9501'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
Проверка доменного имени
Регулярное выражение для проверки на корректность доменного имени сайта:
$pattern = '/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.])([\/\w \.-]*)*\/?$/'; $var = 'https://prowebmastering.ru'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
Оставить латинские буквы, цифры и дефис, но только чтобы он не повторялся более одного раза подряд
Уважаемые гуру, помогите пожалста) доделать функцию разбора.
Требуется в $categ оставить латинские буквы(заглавные и строчные) и цифры, плюс символ дефиса «-«, но только что бы он не повторялся более одного раза подряд.
Для $page, все тоже самое, только к символам еще добавить «.» и подчеркивание «_», ну и соответственно чтобы они тоже не повторялись более одного раза подряд.
$categ = preg_replace('/[^a-zA-Z0-9-]/', '', $categ); $page = preg_replace('/[^a-zA-Z0-9-_.]/', '', $page);
Вывести все строчные латинские буквы, входящие в заданную строку более одного раза
Дана строка. В алфавитном порядке напечатайте(по разу) все малые латинские буквы, входящие в эту.
Дана символьная строка. Если какой-то символ в ней встречается более одного раза, оставить только первое вхождение
Народ.помогите решить задачку Дана символьная строка. Если какой-то символ в ней встречается более.
Строки: Дана последовательность символов(строка). Если какой-то элемент встречается в ней более одного раза, оставить только первое вхождение
помогите решить.. Дана последовательность символов(строка). Если какой-то элемент встречается в ней.
Регулярное выражение — оставить в строке только латинские буквы
Здравствуйте. Как с помощью регулярного выражения оставить в строке только латинские буквы? Было.
$categ = preg_replace('/[^a-zA-Z0-9-]/', '', $categ); $categ = preg_replace('/-/', '-', $categ);
/ (?(DEFINED) (? [a-z0-9]++ ) ) ^ (?&word) (?: - (?&word) )*+ $ /Dxi
Спасибо за ответ! Если не сложно, скажите буквально пару слов о том как этим пользоваться. В preg_replace это выражение не сработало. К тому же для $categ доп.символ один «-«, а для $page их три «-» «.» «_». А выражение вы любезно подсказали только одно
Сообщение от Brambo
А, так я не то сделал. Я написал выражение лишь для проверки совпадения. Каюсь.
А для второго не совсем ясно. Те три символа «-», «.» и «_» не должны повторяться каждый сам по себе (допустимо «foo._-_-._-.-bar») или все вместе (допустимо «foo-bar_lol.baz»)?