На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ALXR
  
    > выкинуть из строки подстроки
      Есть строка вида "param1 - value1, param2 - value2..."

      нужно выкинуть построки, в которых value=0

      написал что-то вроде

      $line = "aaa - 5, bbb - 0, ccc - 8";

      @var = split(/, /, $line);

      $out_str = "";

      foreach my $elem (@var)
      {
      if ($elem !~ /(.*) - 0/)
      {
      $out_str .= $elem.", ";
      }
      }

      $out_str = substr($out_str, 0, -2);

      очень плохо соображаю в регулярных выражениях, наверняка есть какой-то более элегантный способ :yes:

      Добавлено
      вот так переписал



      $line = "aaa - 5, bbb - 0, ccc - 8";

      $line =~ s!, .* - 0,!,!;
        Цитата
        очень плохо соображаю в регулярных выражениях, наверняка есть какой-то более элегантный способ

        оформите пост используя теги CODE
          ну на пхп я не силен, слава богу я его почти забыл :P

          вот на питоне
          ExpandedWrap disabled
            s =  'x - 0, a - 0, b - 1, c - 2, d - 0, e - 0, f - 3, g - 0, h - 4, i - 0, j - 0'
            re.sub(r'(?P<startcomma>[,\s]*)(?:\b\w+ - 0\b(?P<endcomma>[,\s]*))+', lambda x: ', ' if x.groupdict()['startcomma'] and x.groupdict()['endcomma'] else '' , s)


          вариант номер 2, проще
          ExpandedWrap disabled
            re.sub(r'\b\w+ - 0\b[,\s]*', '' , 'x - 0, a - 0, b - 1, c - 2, d - 0, e - 0, f - 3, g - 0, h - 4, i - 0, j - 0').strip(' ,')


          функция поиска и замены по регулярному выражению (в пхп должен быть аналог), пример :
          ExpandedWrap disabled
            re.sub ('\b\w{5,}\b', 'многа_букаф', 'тст тест теест тест тееееееест' ) # все слова длиннее 4 букв заменить на 'многа_букaф' : 'тст тест многа_букаф тест многа_букаф'


          strip по пхп-шному будет trim, кажись.
          ExpandedWrap disabled
            s = s.strip(' ,') # удалить все пробелы и запятые с начала и конца строки


          Добавлено
          cezar, блин а вы некрофил, батенька. и я туда же оО
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0185 ]   [ 16 queries used ]   [ Generated: 28.03.24, 21:08 GMT ]