[Регулярки & Mod_Rewrite] Задай вопрос, получи ответ.

Discussion in 'PHP' started by .:EnoT:., 19 Nov 2008.

Thread Status:
Not open for further replies.
  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    есть мыло на страничке
    [email protected]

    первый раз парсил все имейлы, у которых в конце одна зона
    PHP:
    preg_match_all('/([0-9A-Za-z\_\-]*)\@([0-9A-Za-z\-\_]*)\.([a-zA-Z]{2,5})/i'$return$matches);
    второй раз имейлы с двумя зонами
    PHP:
    preg_match_all('/([0-9A-Za-z\_\-]*)\@([0-9A-Za-z\-\_]*)\.([a-zA-Z]{2,5})\.([a-zA-Z]{2,5})/i'$return$matches2)
    и соответственно получил один и тот же имейл
    PHP:
        [0] => enquiries@themanchestercollege.ac
        
    [1] => enquiries@themanchestercollege.ac.uk
    как вытащить одной регуляркой все имейлы с одной и двумя зонами в конце?
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Дикс
    PHP:
    preg_match_all('/([0-9A-Za-z\_\-]*)\@([0-9A-Za-z\-\_]+)(\.[a-zA-Z]{2,5})+/i'$return$matches);  
     
    _________________________
  3. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <pre>
    <?php 
    $text 
    'Лабуда, [email protected], разный текст 
              Лабуда, [email protected], разный текст текста=)[email protected] Приведите Лабуда, разный текст , разный текст пример текста=) Типо такого...'

    preg_match_all('/[\w\-]+@[\w\-]+.\w+.\w+/'$text$out);
    print_r($out); 
      
    ?>
    </pre>
     
    #583 Pashkela, 29 Jul 2009
    Last edited: 29 Jul 2009
  4. SeNaP

    SeNaP Elder - Старейшина

    Joined:
    7 Aug 2008
    Messages:
    378
    Likes Received:
    69
    Reputations:
    20
    Здравствуйте, помогите пожалуйсто регулярку составить.
    Есть такое вот HTML код
    Code:
    <head><title>13183-Купля/Продажа/Заработок в сети</title></head>
    <body bgcolor="#239651" link="#006f11" vlink="#469453" text="#000000">
    <form method="post" action="/?p=1&f=5&w=htm">
    <table align="center" border="0" cellspacing="1" cellpadding="5" width="100%">
    <tr><td align="center" bgcolor="#005522"><font color="#ffffff"><b>13183-Купля/Продажа/Заработок в сети</b></font></td></tr>
    <tr><td bgcolor="#a2edc0">
    
    <a href="/?p=0&amp;w=htm"><font color="#006f11">Форумы</font></a><br/>
    
    <a href="/?p=1&amp;f=5&amp;w=htm&amp;o=t"><font color="#006f11">Популярные темы</font></a><br/>
    
    
    
    </td></tr>
    <tr><td bgcolor="#c5ffdc">
    
    
    30/07 00:04]<b>Slimi</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274158&amp;w=htm&amp;pg=4">продам!</a></b>(11)<br/> <br/>
    29/07 23:20#<b>][akep</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274156&amp;w=htm&amp;pg=4">Продам или обменяю сайт</a></b>(4)<br/> <br/>
    29/07 23:21#<b>cranz</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274142&amp;w=htm&amp;pg=4">Куплю сайт</a></b>(1)<br/> <br/>
    29/07 23:01]<b>lbast_ru</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274128&amp;w=htm&amp;pg=4">Продам перса</a></b>(0)<br/> <br/>
    29/07 23:40]<b>mrus.org</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274127&amp;w=htm&amp;pg=4">Кто денег на щет кинет ???</a></b>(32)<br/> <br/>
    29/07 23:06]<b>SimBeerSk</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274126&amp;w=htm&amp;pg=4">Продам кредиты</a></b>(5)<br/> <br/>
    29/07 23:05]<b>yar__94</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274121&amp;w=htm&amp;pg=4">куплю сайты на вен или кмx</a></b>(5)<br/> <br/>
    
    
    </td></tr>
    Как можно отфильтровать только ники
    Code:
    SimBeerSk
    cranz
    ][akep
     
  5. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <pre>
    <?php 
    @ini_set("display_errors","1");
    $a '
    <head><title>13183-Купля/Продажа/Заработок в сети</title></head>
    <body bgcolor="#239651" link="#006f11" vlink="#469453" text="#000000">
    <form method="post" action="/?p=1&f=5&w=htm">
    <table align="center" border="0" cellspacing="1" cellpadding="5" width="100%">
    <tr><td align="center" bgcolor="#005522"><font color="#ffffff"><b>13183-Купля/Продажа/Заработок в сети</b></font></td></tr>
    <tr><td bgcolor="#a2edc0">

    <a href="/?p=0&amp;w=htm"><font color="#006f11">Форумы</font></a><br/>

    <a href="/?p=1&amp;f=5&amp;w=htm&amp;o=t"><font color="#006f11">Популярные темы</font></a><br/>



    </td></tr>
    <tr><td bgcolor="#c5ffdc">


    30/07 00:04]<b>Slimi</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274158&amp;w=htm&amp;pg=4">продам!</a></b>(11)<br/> <br/>
    29/07 23:20#<b>][akep</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274156&amp;w=htm&amp;pg=4">Продам или обменяю сайт</a></b>(4)<br/> <br/>
    29/07 23:21#<b>cranz</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274142&amp;w=htm&amp;pg=4">Куплю сайт</a></b>(1)<br/> <br/>
    29/07 23:01]<b>lbast_ru</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274128&amp;w=htm&amp;pg=4">Продам перса</a></b>(0)<br/> <br/>
    29/07 23:40]<b>mrus.org</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274127&amp;w=htm&amp;pg=4">Кто денег на щет кинет ???</a></b>(32)<br/> <br/>
    29/07 23:06]<b>SimBeerSk</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274126&amp;w=htm&amp;pg=4">Продам кредиты</a></b>(5)<br/> <br/>
    29/07 23:05]<b>yar__94</b><br/><b><a href="/?p=3&amp;f=5&amp;t=3274121&amp;w=htm&amp;pg=4">куплю сайты на вен или кмx</a></b>(5)<br/> <br/>


    </td></tr>'
    ;

    preg_match_all('|<b>(.*)</b><br/><b><a href|',$a$res);
    print_r($res[1]);
    ?>
    </pre>
     
  6. SeNaP

    SeNaP Elder - Старейшина

    Joined:
    7 Aug 2008
    Messages:
    378
    Likes Received:
    69
    Reputations:
    20
    Code:
     Array
    (
        [0] => banana jam
        [1] => =777=
        [2] => Amwe y
        [3] => savruslan
        [4] => wikk
        [5] => HaM
        [6] => Prezident
    )
    
    Возможно ли как нибуть просто имена оставить?
     
    #586 SeNaP, 30 Jul 2009
    Last edited: 30 Jul 2009
  7. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Забавный вопрос, а у тебя там что, ссылки в комплекте что ли?

    ЗЫЖ Расшифруй что тебе надо, вроде у тебя и так массив из имен

    Можно переменным присваивать значение элемента массива, можно просто сразу массив имплодить и писать в файл - правда, вопрос непонятен
     
    #587 Pashkela, 30 Jul 2009
    Last edited: 30 Jul 2009
  8. SeNaP

    SeNaP Elder - Старейшина

    Joined:
    7 Aug 2008
    Messages:
    378
    Likes Received:
    69
    Reputations:
    20
    PHP:
    $a file_get_contents('text.txt'); 
     
    preg_match_all('|<b>(.*)</b><br/><b><a href|',$a$res); 
    print_r($res[1]);
    Выводит вот такое
    Code:
    Array
    (
        [0] => banana jam
        [1] => =777=
        [2] => Amwe y
        [3] => savruslan
        [4] => wikk
        [5] => HaM
        [6] => Prezident
    )
    
    Как можно вывести только имена, таком порядке
    Code:
    banana jam
    =777=
    Amwe y
    savruslan
    .....
    
    Мозги вообще отказываются работать
     
  9. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    PHP:
    for ($i 0$i count($res[1]); $i++)
    {
      echo(
    $res[1][$i] . '<br>');
    }
    вместо
    PHP:
    print_r($res[1]); 
     
  10. SeNaP

    SeNaP Elder - Старейшина

    Joined:
    7 Aug 2008
    Messages:
    378
    Likes Received:
    69
    Reputations:
    20
    Спасибо :)

    Я до этого так делал
    PHP:
    for ($i 0$i count($res); $i++)
    {
      echo
    $res[$i];
    }
    И думал, чёже не так :D
     
  11. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Для работы с массивами используется цикл foreach.
     
  12. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    т.е. while не катит что ли уже?:))) while пошустрее, имхо
     
  13. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    есть строка с тестом нефиксированной длинны
    param=blablabla-sgd@34;
    нужно получить все между param= и ;
     
  14. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <pre>
    <?php
    $a 
    "param=blablabla-sgd@34; param=blablabla111-sgd@34;ssdfgdfsg param=blablabla2222-sgd@34;";
    preg_match_all('|param=(.*);|U',$a$res);
    print_r ($res[1]);
    ?>
    </pre>
     
    1 person likes this.
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    FireFenix Не лениться и делать полную регулярку.
    Code:
    (r\d{1,3})(g\d{1,3})(b\d{1,3})
     
    _________________________
    #595 Gifts, 8 Aug 2009
    Last edited: 8 Aug 2009
  16. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    все не над) написал сам
     
    #596 alwex, 13 Aug 2009
    Last edited: 13 Aug 2009
  17. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    DeluxeS Системной командой:
    Для прав drwxrwxrwx:
    find /папка/от/которой/плясать -type d -perm -0777 -ls
    Список папок:
    find /папка/от/которой/плясать -type d -print > /файл/куда/записывать
     
    _________________________
    #597 Gifts, 21 Aug 2009
    Last edited: 21 Aug 2009
    1 person likes this.
  18. Велемир

    Joined:
    19 Jun 2006
    Messages:
    1,123
    Likes Received:
    96
    Reputations:
    -25
    Превед ночному пиплу! Схавайте,плз,такую версию:

    PHP:

    if(preg_match_all('|<a href="readmsg?id=(.*?)">DarkForce</a></td>|',$r,$m)) { 

    foreach(
    $m[1] as $result) {

    echo 
    "$result\r\n";

    }

    }

    else {

    echo 
    "fuck you!";




    }

    Регулярка с mail.ru для письма,расположенного в папке Входящие.

    DarkForce - это поле Автор письма(не мыло)

    Исходное выглядит так:

    <a href="readmsg?id=12510492610000000794">DarkForce</a></td>

    айди я и хочу спарсить,чтобы потом в ссылку подставить.прег мач олл выбрал,чтобы одинаковые письма стричь.Кто поможет ? ( Отзывается ток на регулярку .* (((
     
  19. PaCo

    PaCo Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    Эх веня,веня не забываем про спец символы - ?
    Вобшем что то типа такого
    '#<a href="readmsg\?id=(\d+)"#is'
     
    1 person likes this.
  20. Велемир

    Joined:
    19 Jun 2006
    Messages:
    1,123
    Likes Received:
    96
    Reputations:
    -25
    ххах))и вправду забыл.Попробую...пасип те,брат.Я прост ща от программинга отошёл,дела...и ремонт в квартире(.


    ЗЫ: Регулярко РАБОТАЕТ.Чутка продвинулся.Терь вопрос: как проще сделать так(при отладке рнр скриптов),чтобы результат курл запроса выводился и не выводилсяю.когда мне нужно? Я поступил так: создал три функции - get,post и showget.Первые две шлют только гет или только пост запрос,но результата не показывают.Добавить хочу ещё showpost,исходя из вышеприведённой логики).Но кажется мне,что это решение не добротно(.Кто подскажет вариант попроще ?
     
    #600 Велемир, 24 Aug 2009
    Last edited: 24 Aug 2009
Thread Status:
Not open for further replies.