Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
1 / 1 / 2
Регистрация: 20.10.2011
Сообщений: 146
1

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

12.02.2019, 13:15. Показов 1828. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мягко говоря, в замешательстве. Не могу понять, почему регулярка не проглатывает строку.
В кратце - нужна регулярка, чтобы проверить название файла на верный формат
Заявление_Иванов_магистратура_бюджет_очно_2019.doc - это корректное наименование
Пишу регулярку /Заявление_[а-яА-Я]*_магистратура_бюджет_очно_2019.doc/ - все отлично
Пигу /Заявление_[а-яА-Я]*_[а-яА-Я]*_бюджет_очно_2019.doc/ - все, не проходит. Почему так?

З.Ы. Первоначально написал такую регулярку для проверки всей строки: /Заявление_[а-яА-Я]*_[а-яА-Я]*_[а-яА-Я]*_[а-яА-Я]*_[0-9]*\..{3}/
Что не так?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2019, 13:15
Ответы с готовыми решениями:

ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех реальных ссылок на...

Регулярные выражения
Добрый день! Подскажите какой будет шаблон паттерн для функций preg_replace, если условие такое....

Регулярные выражения
Почему не работает? Где собака зарыта, помогите отрыть :) <?php header ("Content-Type:text/html;...

Регулярные выражения.
Нужно вытащить все, находящееся между "мп3-дисков" и "top100.rambler.ru/top100". Подскажите, два...

4
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
12.02.2019, 13:56 2
Лучший ответ Сообщение было отмечено Fresh_MaN как решение

Решение

Цитата Сообщение от Fresh_MaN Посмотреть сообщение
/Заявление_[а-яА-Я]*_[а-яА-Я]*_бюджет_очно_2019.doc/ - все, не проходит.
Всё проходит

Добавлено через 6 минут
Fresh_MaN, можно сократить шаблон, используя символьные классы в комплекте с несохраняющими скобками: см. пример

В этом примере буквенная (всё, что после "Заявление") и числовая часть (там где год), являются необязательными.
0
1 / 1 / 2
Регистрация: 20.10.2011
Сообщений: 146
12.02.2019, 14:26  [ТС] 3
VNIIAEN, Благодарю покорнейше
0
1 / 1 / 2
Регистрация: 20.10.2011
Сообщений: 146
13.02.2019, 07:16  [ТС] 4
ничего не понимаю. На сайте не отрабатывает preg_match, тут тоже.
А здесь отрабатывает... Выражение, строка - везде одинаковы...
0
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
13.02.2019, 09:11 5
Fresh_MaN, потому что для многобайтовых кодировок в шаблоне нужно указывать модификатор "u":
PHP
1
2
3
4
5
$str = 'Заявление_Иванов_магистратура_бюджет_очно_2019.doc';
 
preg_match('/Заявление(?:_\pL+)*(?:_\d+)*\.\pL{3}/u', $str, $matches);
 
print_r($matches);
См.демо
0
13.02.2019, 09:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2019, 09:11
Помогаю со студенческими работами здесь

регулярные выражения
Определить является ли входная лента, лентой - abcdefghijklmnopqrstuv18340 Где здесь ошибка в...

Регулярные выражения
Добрый день. Помогите заменить строку к примеру: ...

регулярные выражения
ток начал изучать регулярные выражения, возник небольшой вопрос $string = "doc1.doc"; ...

Регулярные выражения
Как с помощью регулярных выражений найти числа больше заданного числа ( есть массив в котором...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru