Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Не понятен принцип работы регулярного выражения


Автор: kichSman 6.10.2011, 21:16
Собственно, задача то простая стоит, разделить строку по запятым которые стоят перед заглавными буквами - для чего использовалось следующее регулярное выражение:
Код

$s = preg_replace( '/\,\s(?=[А-ЯЁ])/', "\n", $s );


Со всеми строками работа ведется нормально, но вот со строкой следующего типа, прям беда какая то
Код

$s = 'Приказ Федерального агентства по делам Содружества Независимых Государств, соотечественников, проживающих за рубежом, и по международному гуманитарному сотрудничеству Российской Федерации от 14.10.2010 № 152-пр';

Разделяет по следующему виду (см. номера строк):
Код

Приказ Федерального агентства по делам Содружества Независимых Государств, соотечественников
проживающих за рубежом
и по международному гуманитарному сотрудничеству Российской Федерации от 14.10.2010 № 152-пр

Не понятн, почему регулярка себя так ведет и игнорирует строгость регистра, текст в UTF-8.

Буду признателен за помощь решения подобной проблемы.

Автор: Evghenusi 6.10.2011, 22:36
попробуйте добавить модификатор u
Код
preg_replace( '/,\s(?=[А-ЯЁ])/u', "\n", $s );

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)