Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2021, 21:32   #1
Envime
 
Регистрация: 26.01.2020
Сообщений: 9
По умолчанию Странное поведение регулярок

Вот сама регулярка \(([a-zA-Z]+([-’'][a-zA-Z]+)?([-’][a-zA-Z]+)?) ([а-яА-Я]+([-’' ][а-яА-Я]+)?([-’][а-яА-Я]+)?)\). На первом скрине видно что фул матч. Затем на втором скрине видно код. На третьем скрине показан вывод в chrome. То есть он увидел только одну пару слов. Из 10000 пар слов прошли проверку только около 700, при этом в regexp любая пара проходит проверку. Что происходит? Нужны ли еще какие-то сведения? За ответ буду благодарен.
Изображения
Тип файла: jpg 1.jpg (52.0 Кб, 5 просмотров)
Тип файла: jpg 2.jpg (22.1 Кб, 7 просмотров)
Тип файла: png 3.png (16.7 Кб, 2 просмотров)
Envime вне форума Ответить с цитированием
Старый 22.02.2021, 03:08   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Регулярки всегда зло, можно ли решить вашу задачу без регулярок? банальными условиями, например.
Alar вне форума Ответить с цитированием
Старый 22.02.2021, 04:26   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Попробуйте добавить в шаблон флаг u "/.../u".
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 22.02.2021, 13:42   #4
Envime
 
Регистрация: 26.01.2020
Сообщений: 9
По умолчанию

Alar, С регулярками у меня такое впервые, так-то я их люблю использовать. Как сделать по другому не знаю...
Envime вне форума Ответить с цитированием
Старый 22.02.2021, 13:43   #5
Envime
 
Регистрация: 26.01.2020
Сообщений: 9
По умолчанию

BDA, Можете подробнее объяснить? Я не понял о чем вы.
Envime вне форума Ответить с цитированием
Старый 22.02.2021, 14:50   #6
Envime
 
Регистрация: 26.01.2020
Сообщений: 9
По умолчанию

Упростил регулярку до ([a-zA-Z]+([-’'][a-zA-Z]+)?([-’][a-zA-Z]+)?) ([А-я]+([- ][А-я]+)?([- ][А-я]+)?) и что-то пошло. На скрине видно что ему не нравится буква 'у'. Как это починить?
Изображения
Тип файла: png 1.png (21.9 Кб, 0 просмотров)
Envime вне форума Ответить с цитированием
Старый 23.02.2021, 03:42   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Попробуйте "/([a-zA-Z]+([-’'][a-zA-Z]+)?([-’][a-zA-Z]+)?) ([А-я]+([- ][А-я]+)?([- ][А-я]+)?)/u".
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.02.2021, 12:28   #8
Envime
 
Регистрация: 26.01.2020
Сообщений: 9
По умолчанию

BDA, Сработало! Вы открыли мне флаги регулярных выражений. Спасибо большое.
Envime вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странное поведение idHTTP Serzant Работа с сетью в Delphi 1 21.02.2014 21:04
странное поведение компилятора Kukurudza Общие вопросы C/C++ 10 23.09.2011 08:22
Странное поведение gets alex_alpha Общие вопросы C/C++ 3 27.03.2010 18:21
Странное поведение null Vitalyk JavaScript, Ajax 6 13.02.2010 15:22
Странное поведение DLL Yurk@ Компоненты Delphi 4 01.02.2009 01:23