Регулярные выражения
Нужна помощь в составлении шаблона регулярного выражения для поиска и замены в строке пробела (0x20), стоящего между цифрой (римская, арабская) и каким либо словом на неразрывный пробел (спецсимвол )
Напр. IV квартал, 2012 год, 1 января 2012 г. и т.п. сочетания
Желательна реализация на PHP
Сам голову сломал 8(
Буду благодарен за любой дельный совет
Спасибо
Цитата: arrjj
Код:
preg_replace("/([IV\d]) (.*)/i","\1& nbsp;\2",$string);
не полностью отвечает моей задаче, но на правильный путь Вы меня "навели" ;) Спасибо!
Совсем забыл про ссылки в строке для замены!..
На данном этапе вышло следующее:
Код:
$string = "IV квартал, 2012 год, 1 января 2012 г.";
$pattern = "/(\d|[CIMVX]) ([а-яА-Я])/i";
$replacement = '$1_$2'; //символ "_" вместо & nbsp; для наглядности
echo preg_replace($pattern, $replacement, $string);
$pattern = "/(\d|[CIMVX]) ([а-яА-Я])/i";
$replacement = '$1_$2'; //символ "_" вместо & nbsp; для наглядности
echo preg_replace($pattern, $replacement, $string);
что касается:
Цитата: arrjj
Код:
[code=php]
str_replace(" ","& nbsp;",$string);
str_replace(" ","& nbsp;",$string);
на выходе все пробелы, а не только "нужные" будут заменены на & nbsp; чего совсем не хотелось бы...
Код:
preg_replace("/([IV\d]) (.*)/i","\1& nbsp;\2",$string);
Код:
str_replace(" ","& nbsp;",$string);