Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Регулярные выражения > Замена по шаблону в строке, имеющей "|" символ |
Автор: spinel 30.4.2010, 12:55 | ||||||
простой пример
Требуется заменить в строке $title часть "2004 | 34" на произвольную строку. Вышеприведенный код отдает вот что:
ставим в щаблон обратный слеш в надежде, что | не будет расцениваться как "или" :
получаем тоже самое. Есть идеи? |
Автор: amg 30.4.2010, 13:30 |
$p='2004 \| 34'; |
Автор: spinel 30.4.2010, 13:49 |
во, спасиб...а если эта $p не заранее определена, а вычисляется? $p=~s/\|/\\|/; не помогает спасибо |
Автор: shamber 30.4.2010, 13:58 |
$p=~s/\|/\\|/ Это что значит? |
Автор: amg 30.4.2010, 14:56 |
Странно. Должно работать. Или в общем случае $p =~ s/(\W)/\\$1/g; |
Автор: Pfailed 30.4.2010, 20:47 |
Можно еще всё заключить в \Q\E дабы не было проблем со спец символами: $title =~ s/\Q$p\E/5/; |
Автор: Logo 30.4.2010, 20:49 |
quotemeta |