Регулярное выражение на php

208
30 июля 2018, 17:30

Не получается составить регулярное выражение такого вида xx.xx.xxx, где x - может быть любой латинский или русский символ любого регистра или цифра. Но обязательно должно быть 2 символа, далее точка => 2 символа => точка => 3 символа Составил следующее выражение -

var_dump(preg_match('/^([а-я]*[А-Я]*[A-Z]*[a-z]*ё*Ё*[0-9]*){2}.([а-я]*[А-Я]*[A-Z]*[a-z]*ё*Ё*[0-9]*){2}.([а-я]*[А-Я]*[A-Z]*[a-z]*ё*Ё*[0-9]*){3}$/u', 'd1.df.dfd'));

Выражение работает кооректно, но если удалить 1 символ вконце, например d1.df.df, то оно возвращает 1, хотя должно 0. Подскажите пожалуйста в чем может быть проблема?

Answer 1

Поиск двух групп: (?:[\pL\d]{2}\.){2} Поиск трёх буквенно-числовых символов: [\pL\d]{3} Модификаторы: i - регистронезависимый; u - поиск символов юникода.

(?:...) - это конструкция НЕ сохраняющих скобок, которая используется только для группировки символов. А простые скобки (...) помимо группировки ещё и выполняют захват соответствующих подстрок. \pL и \d - это буквенные и числовые символьные классы соответственно.

$str = 'xx.xx.xxx';
$patt = '~(?:[\pL\d]{2}\.){2}[\pL\d]{3}~iu';
preg_match($patt, $str, $arr);
var_dump($arr);
READ ALSO
Как сделать вывод для каждой страницы на WordPress

Как сделать вывод для каждой страницы на WordPress

Есть несколько страниц на WordpressДля каждой странице нужно вывести несколько полей

163
Ошибка запроса fetch_array

Ошибка запроса fetch_array

Пишет, что ждал параметр, а получил обьектРезульт запроса потом мне еще в переменную скинуть надо

147
Не выходит сделать запрос

Не выходит сделать запрос

Доброго времени суток есть таблица допустим tabel(id,name,color,price), хочу сделать запрос фильтрации по цвету и цене

172
Как сгруппировать данные из БД по нескольким значениям?

Как сгруппировать данные из БД по нескольким значениям?

Есть MySql БД, в каждой строке записано time, step, idid - уникальное значение, time и step не уникальные, то есть они могут быть одинаковые в разных строках

187