круглые скобки помимо группировки, выполняют ещё и "захват" найденных соответствий
Благодаря вам, думаю, я словил "нить" о том, что такое "без обратной ссылки" и "захват".
А вот здесь
Строитель пишет:
Ещё одна особенность захватывающих скобок - это возможность ссылаться на т.н. "подмаски" прямо внутри шаблона
Я уже, честно говоря, потерялся...
Видимо устал, да и знаний в этой теме явно не хватает.
Но после ваших ответов и примеров, появилось приятное желание найти время, чтоб детальней и более структурно начать изучать мануалы по reg exp.
Еще раз спасибо вам, за время и внимание уделенное моим вопросам.
P.S.
Буду еще более благодарен, если дадите ссылку на человеко-понятный талмуд по этой тем.
Пока все, что нагуглил, достаточно сухо и концентрированно, а иногда и вовсе непонятно.
\pL - это упрощённо говоря буквы (латиница). А если дописать к шаблону модификатор u, то последовательность символов (иначе говоря - символьный класс)\pL будет соответствовать ещё и кириллице. \s - это символьный класс пробельных символов. Что-то ещё разъяснить?
Спасибо! Благодаря вам, теперь стал чуть больше понимать в такой не простой теме под названием "Regular expressions".
Но если вам не сложно, еще вот этот момент, чтоб закрепить.
Цитата:
(?:' ;)
Смотря в мануалы, я вижу:
Цитата:
(?:шаблон) - группировка как и '( )', но без обратной ссылки.
Вот это "без обратной ссылки" мне никак не дается.
Интуитивно понимаю, что надо еще несколько раз прочесть мануалы, чтоб понять смысл вот этого "без обратной ссылки" и в чем принципиальная разница между ( ) и (?:шаблон).
И еще, я правильно понял, если необходимо разрешить еще какие-либо спецсимволы, то за *(?:' ;) добавляю еще одну группу например *(*(?:"))
К сожалению, такой вариант не правильный.
Теперь эта регулярка будет пропускать не только ' ;, но и все подряд.
А потому результат всегда положительный...
Мелкий, Deonis Спасибо!
Как-то я не сообразил, что функции mb_strtoupper() и mb_strtolower() можно использовать таким образом... Хотя их и рассматривал.
Благо, что есть такие форумы, как этот и такие отзывчивые гуру, как вы!
Задача, казалось бы, простая.
Есть текст и необходимо определить какой регистр у первого символа строки.
С английскими символами проблем нет. Но вот с кириллицей начинаются проблемы.
Использую, конечно же UTF-8, но...
В общем написал вот так:
Но работает это, мягко говоря, странно. С латиницей, как всегда, все отлично. А вот с кирюхой через раз, а точней - вообще криво.
Я так понял, что ctype_upper() не видит кодировку UTF-8...
Или же проблема в чем то другом.
Ребята, помоги разобраться. Как нужно написать, чтоб всегда получать правильный регистр первого символа строки в кириллице?