|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Serge Shikov 2:5020/400 08 Aug 2000 11:17:45 To : All Subject : Re: regexp -------------------------------------------------------------------------------- Paul Kulchenko wrote: > > > > > > Как перловым регекспом удалить скажем второй TAB в строке? > > > > > s/\t// - Удаляет первый > > > > > s/t//g -Удаляет все. > > > > > Как удалить только второй? > > > А if опять же зачем? Ведь тривиальнейший регексп: > > > > > > $str =~ s/.*?\t.*(\t).*//; > > > > > > будет IMHO делать ровно тоже самое, причем только тогда, когда > > > совпадение будет иметь место. Даже ? кажется не потребуется... > Потребуется. Hу я потому и написал "кажется"... > Ладно придираться-то. Вовсе нет, я просто пытался понять - может я чего-то упустил? > Естественно нужно добавить кое-что в правой части и кое-что в левой :) > $str =~ s/(.*?\t.*)\t/$1/; > Идея-то правильная. Hу можно и так. В любом случае чтоб найти второй \t, if явно ни к чему, это достигается s/// и обычным регекспом. Который либо оставляет все кроме \t, либо наоборот выбрасывает только его (смотря что в скобки заключим). --- ifmail v.2.15dev5 * Origin: home (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/282510adaa0d.html, оценка из 5, голосов 10
|