Автор Тема: Сложный парсинг строки регулярными выражениями  (Прочитано 2601 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nerian

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Всем привет! Кто может подсказать как преобразовать строку вида "word word digital word real.real word", с помощью регулятрного выражения в html строку с выделением отдельным цветом все слова, цифры, и цифры с плавающей запятой?
Допустим чтобы word\'у соответсвовал color=red, digital=blue, real=green.
И в итоге из указанной выше строки получилось бы следующее:
word word digital word real.real word?
Вся сложность обстоит в том что после первой замены всех допустим цифр на определённый цвет добавяться теги, и потом теги так же будут обработаны регулярным выражением как слова. Как быть?

Оффлайн serezniy

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 34
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
Вся сложность обстоит в том что после первой замены всех допустим цифр на определённый цвет добавяться теги, и потом теги так же будут обработаны регулярным выражением как слова. Как быть?

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

$str
="font green ёлка 354";

$arr=explode(" ",$str); //Разделяем на фрагменты по пробелу
foreach ($arr as $value//Разукрашиваем каждый элемент в зависимости от его типа
{
	
if(
is_numeric($value))
	
{
	
    
$result[]=\'<font color="red">\'.$value."</font>";
	
    continue;
	
}
	
if(is_string($value))
	
{
	
    $result[]=\'<font color="green">\'.$value."</font>";
	
}
}
echo implode(" ",$result); //Объединяем фрагменты и выводим результат

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28