The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Как в Perl вырезать у строки лидирующие пробелы
  $str =~ s/^\s*([^\s]?.*)$/$1/;
  $str =~ s/^(.*[^\s])\s*$/$1/; # два regex работают быстрее, чем один более сложный
 
04.01.2003
Ключи: regex, perl / Лицензия: CC-BY
Раздел:    Корень / Программисту и web-разработчику / Perl / Полезные подпрограммы на Perl / Работа с сетью и IP адресами на Perl

Обсуждение [ RSS ]
 
  • 1, B.O.B.A.H., 10:34, 14/10/2004 [ответить] [смотреть все]
  • +/
    а так не работает?
    s/^\ *// # удалит только пробелы
    s/^\s*// # включая табуляцию и переход на новую строку
     
     
  • 2, Maxim Chirkov, 22:23, 16/10/2004 [^] [ответить] [смотреть все]
  • +/
    Описанный в совете пример работает быстрее для относительно больших строк.
    s/^\s*//;$str =~ s/\s*$//; быстрее в случае небольших строк (примерно до 50 символов).
    $str =~ s/^\s*(.*?)\s*$/$1/;' - наименее оптимальный вариант.

    $str =~ s/^\s*//;$str =~ s/^(.*[^\s])\s*$/$1/; - комбинированный вариант, очень неплохой результат.

    тестировал так:

    #!/usr/bin/perl
    use strict;
    use Benchmark;

    timethese(100000,
        {
          test1 => 'my $str="  test "; $str =~ s/^\s*([^\s]?.*)$/$1/;$str =~ s/^(.*[^\s])\s*$/$1/;',
          test2 => 'my $str="  test "; $str =~ s/^\s*//;$str =~ s/\s*$//;',
          test3 => 'my $str="  test "; $str =~ s/^\s*(.*?)\s*$/$1/;',
          test4 => 'my $str="  test "; $str =~ s/^\s*//;$str =~ s/^(.*[^\s])\s*$/$1/;'
        }
    );

     
  • 3, Skif, 18:20, 24/12/2004 [ответить] [смотреть все]
  • +/
    пользуюсь s/^[\s\t]+/g
    Не знаю на сколько быстрее/медленнее, но понятнее и не громоздко.
     
     
  • 4, Thekostya, 18:55, 05/12/2006 [^] [ответить] [смотреть все]
  • +/
    >  пользуюсь s/^[\s\t]+/g

    а g  в конце зачем ? :)

     
  • 5, Dan, 01:46, 23/10/2016 [^] [ответить] [смотреть все]
  • +/
    Метасимвол \s по-хорошему включает в себя \t.
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor