Программирование > Регулярные выражения

И СНОВА Я

(1/2) > >>

stanlee:
НЕ ПОЙМУ КАК МНЕ ЗАЦЕПИТЬ С ПОМОЩЬЮ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ ТАКУЮ ВОТ КОМПОЗИЦИЮ

ПЕРЕД КАЖДОЙ СТРОКОЙ ТАБУЛЯЦИЯ ИДЕТ
   
   to
   

ПРОБОВАЛ ТАК
$result = preg_replace("/(to)/m", "ЛЯЛЯ", $result);
НЕ ПРОКАТЫВАЕТ
$result = preg_replace("/(\\n\\tto\\n)/", "ЛЯЛЯ", $result);
ТОЖЕ НЕ КАТИТ

В ЧЕМ ТРАБЛА?

Yukko:

--- Цитировать ---stanlee:
В ЧЕМ ТРАБЛА?
--- Конец цитаты ---

трабла в том, что там могут быть еще и пробелы, ты не знаешь точно, сколько переводов строки и табуляций и у тебя пред каждой строкой.

Навскидку без проверки:
preg_replace("/([\\n\\t\\s]?[\\n\\t\\s]?to[\\n\\t\\s]?[\\n\\t\\s]?)/m","bla bla bla",$result);

конструкция [\\n\\t\\s]? говорит, что в этом месте могут стоять пробелы, табуляции и перевод строки в любом количестве в любом порядке...

Исправление
вместо [\\n\\t\\s]? читать [\\n\\t\\s]*

можно попробовать и просто \\s*

Alone:
конструкция [\\n\\t\\s]? говорит, что в этом месте могут стоять пробелы, табуляции и перевод строки в любом количестве в любом порядке...


[\\n\\t\\s]*
а разве не так?

Yukko:
насчет ? стормозил, надо *  
насчет замечания ondr в ЛС, что \\s заменяет \\t и \\n неуверен,
в мануале
\\s - any whitespace character,
если tab еще можно принять за подобный, то \\n неуверен.

ondr:
Yukko
$t = " \\t\\r\\n\\f";
$t =~ s/\\s+//;
print length($t); # Результат 0

ps: А вообще в мануале так и сказано ;)

Навигация

[0] Главная страница сообщений

[#] Следующая страница

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 
Перейти к полной версии