Не могу разобраться с регуляркой

136
24 января 2018, 16:15

Не могу понять, почему регулярка не срабатывает для последней строки?

[^a-zA-Zа-яА-Я]уфа([^a-zA-Zа-яА-Я]|$)
Manufacturing
asdasdуфаавпвап     true
!!! ...уфа... !!!!! true
sdf уфа             true
уфа                 false

Вот здесь можно потыкать интерактивный вариант: https://regex101.com/r/9fNMkj/1

Answer 1

Используйте последовательность символов \b, обозначающих границу слова:

$str = 'Manufacturing
asdasdуфаавпвап
!!! ...уфа... !!!!!
sdf уфа
уфа';
$patt = '~\bуфа\b~u';
preg_match_all($patt, $str, $arr);
var_dump($arr);
Answer 2

Ты уже проверяешь на конец строки, но не проверяшь на начало. Надо так:

(^|[^a-zA-Zа-яА-Я])уфа([^a-zA-Zа-яА-Я]|$)

Но вообще подозреваю, что правильнее было бы использовать \b:

\bуфа\b
Answer 3

Вот так вот надо:

(^|\s*|[^a-zA-Zа-яА-Я0-9ёЁ])уфа([^a-zA-Zа-яА-Я0-9ёЁ]|\s+|$)

\s - пробельный символ

^ - начало строки

$ - конец строки

ёЁ - не забываем любимую букву

READ ALSO
Как убрать увеличение auto_increment в БД при некорректном заполнении формы?

Как убрать увеличение auto_increment в БД при некорректном заполнении формы?

Есть форма регистрации с некоторым числом полейЕсть обработчик, в котором что-то типа:

128
Пишет что не заполнены все поля

Пишет что не заполнены все поля

У меня проблема с кодом, когда нажимаю кнопку добавить тарифный план - пишет, что не все поля заполнены

195
Как удалить пустые строки в конце файла?

Как удалить пустые строки в конце файла?

Добрый вечерПодскажите, пожалуйста, код (php), который будет удалять пустые строки в конце файла

203
Как отличить JSON от $_POST

Как отличить JSON от $_POST

Как отличить JSON запрос от POST(тот который $_POST['Значение']) ? Например если приходит JSON то делать одно действие, а если пост то делать с ним другое

200