| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |