Кто силен в регулярках, помогите.

Тема в разделе "Регулярные выражения", создана пользователем Шейла, 18 мар 2010.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. Шейла

    Шейла

    Регистр.:
    12 май 2008
    Сообщения:
    565
    Симпатии:
    158

    Необходимо обработать *.txt файл, который содержит мыльники.

    Например

    455623127822@bk.ru
    121212121974@mail.ru
    и т.д.

    Чтоб на выходе получилось

    Перейти по ссылке
    Перейти по ссылке

    То есть формировалась строка по приблизительно такому алгоритму

    К строке Перейти по ссылке
    подставляются символы находящиеся после @ и до символа точка в конце со слешем/(то есть домен mail/ bk/ list/ или inbox/)
    В самый конец подставляется набор символов которые идут с начала строки до символа @

    Из инструмента PowerGrep.

    Помогите не грамотному :bc:
     
  2. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    PHP:
    echo "<pre>";
    foreach(
    file('emails.txt') as $email) {
      
    $arr explode('@'trim($email));
      
    $arr2 explode('.',$arr[1]);
      
    $str 'http://'.$arr[1] . '/' $arr2[0] . '/' $arr[0];
      echo 
    "$str\n";
    }
    без регулярок)

    А с регуляркой - несколько не-@, потом @ потом несколько не-точек, потом точка, потом до конца строки:

    PHP:
    preg_replace("/^([^@]+)@([^.]+).(.*?)$/i"
      
    "http://\2.\3/\2/\1"$email);
     
    Шейла нравится это.
  3. Шейла

    Шейла

    Регистр.:
    12 май 2008
    Сообщения:
    565
    Симпатии:
    158
    Тему CLOSE
    Взял первый вариант, только изменил немного, чтоб было то что мне надо.
    PHP:
      $str 'http://mail.ru/'$arr2[0] . '/' $arr[0]; 
      echo 
    "$str <br>"
     
Статус темы:
Закрыта.