|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Paul Kulchenko 2:5020/400 07 Aug 2000 22:11:02 To : All Subject : Re: regexp -------------------------------------------------------------------------------- Hi, Artur! Artur Penttinen wrote: > > > > Как перловым регекспом удалить скажем второй TAB в строке? > > > > s/\t// - Удаляет первый > > > > s/t//g -Удаляет все. > > > > Как удалить только второй? > > А if опять же зачем? Ведь тривиальнейший регексп: > > > > $str =~ s/.*?\t.*(\t).*//; > > > > будет IMHO делать ровно тоже самое, причем только тогда, когда > > совпадение будет иметь место. Даже ? кажется не потребуется... Потребуется. > > # perl -de0 > DB<1> $str = "a\tb\tc"; > > DB<2> if ($str =~ m/^(.*?\t.*?)\t(.*)$/) { $str = $1 . $2; } > > DB<3> p $str > a bc > DB<5> $str = "a\tb\tc"; > > DB<6> $str =~ s/.*?\t.*(\t).*//; > > DB<7> p $str > > DB<8> > > Ы? Ладно придираться-то. Естественно нужно добавить кое-что в правой части и кое-что в левой :) $str =~ s/(.*?\t.*)\t/$1/; Идея-то правильная. Best wishes, Paul. --- ifmail v.2.15dev5 * Origin: Rostelecom/Internet Centre (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/355599ba1a71.html, оценка из 5, голосов 10
|