| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Регулярные выражения > найти foo но не "...foo..." |
| Автор: GoldFinch 13.5.2010, 14:21 |
| как должна выглядеть регулярка для следующей замены: входная строка: ___foo___"__foo__"___ результат замены ___bar___"__foo__"___ т.е. если часть строки заключена в "", то в ней замена не производится |
| Автор: dva300 19.5.2010, 00:38 | ||||
день добрый, можно так
итог sdfsdfsdf BAR sdfsdfsfsdf "sdsfsdf for sdfsdf" sfsdfsdfsdf BAR sdfsfsdff |
| Автор: GoldFinch 19.5.2010, 18:35 |
| dva300, вы ошиблись и написали в кавычках не foo а for. |
| Автор: dva300 19.5.2010, 18:50 | ||||
да, согласен, прошу прощения. частный случай когда "foo"
остается воткнуть произвольные способы. вечером подумаю. |
| Автор: GoldFinch 20.5.2010, 18:31 |
| dva300, в реальном случае, мне кроме кавычек надо будет еще пропускать /*..\n..*/ и //....\n пока что я решил что регуляркой такое не сделать, надо искать (foo|".*?foo.*?") и проверять 1й символ найденного |
| Автор: amg 21.5.2010, 15:26 |
| $str = join '', map {/^"/ || s/foo/bar/g; $_} split /(".*?")/, $str; |