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

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

Thread Status:
Not open for further replies.
  1. #Wolf#

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

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    PHP:
     preg_match('#<name><\!\[CDATA\[(.*?)\]\]></name>#',$in,$out);
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    b3 а вы думаете такой хеш невозможен?
     
    _________________________
  3. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Думаю что нет, но не уверен, не видел реализацию хэширования. По крайней мере я не встречал за всю жизнь таких хэшэй
     
  4. [R]eD

    [R]eD Elder - Старейшина

    Joined:
    1 Aug 2006
    Messages:
    72
    Likes Received:
    1
    Reputations:
    0
    есть текст:
    zxc 100.20 dasdas asd asd adsd

    как вытащить zxc, 100.20, и dasdas asd asd adsd?

    '#(.*) (\d{1,4}.\d{2}) (.*)#'

    работает но вытаскивает только dasdas, т.е. только первое слово, а нужно до конца строки...
     
  5. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Задание не полное, по этому придется прибегнуть к телепатическим способностям. Как понял я есть строка вида:
    [слово из трех символов] [пробел] [число с плавающей точкой] [пробел] [остальное]

    PHP:
    <?php
    $str 
    'zxc 100.20 dasdas asd asd adsd';

    if(
    preg_match('#^([a-z]{3}) (\d+?\.\d+) (.*)$#',$str,$m)){
        
    print_r($m);
    }
    /*
    Array
    (
        [0] => zxc 100.20 dasdas asd asd adsd
        [1] => zxc
        [2] => 100.20
        [3] => dasdas asd asd adsd
    )

    */
    ?>
     
  6. Jakeroid

    Jakeroid Member

    Joined:
    9 May 2009
    Messages:
    199
    Likes Received:
    12
    Reputations:
    1
    Наткнулся на следующую проблему.
    Есть текст вида:

    Что бы вытащить ЧИСЛА юзаю:
    Что бы вытащить ТЕКСТ юзаю:
    По отдельности работает и то и другое. А вот вместе не могу.
    Пытаюсь с помощью
    Не хочет.
     
  7. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Code:
    /<a href="\/NNNN\/[0-9]*">(\d*)<\/a>.*<div>(.*?)<\/div>/s
    
     
  8. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    PHP:
    111 |XXX222
    XXX - постоянно меняется


    PHP:
    ^(.*?) |XXX| (.*?)$
    Что нужно написать вместо ХХХ, чтобы несмотря на его изменение, регулярка продолжала работать ?
     
  9. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73

    .+ - Любое количество любых символов
     
    1 person likes this.
  10. vvs777

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

    Joined:
    16 Nov 2004
    Messages:
    394
    Likes Received:
    213
    Reputations:
    4
    подскажите, пожалуйса.
    Задача : из кода HTML страницы (точнее куска, содержащего <p><b><center><img><object><a> и еще несколько тегов) нужно отделить текст (включая текстовые ссылки внутри предложений) от всего остального. Текст преобразовать одним алгоритмом, все остальное другим потом вставить в нужные места (где было) и сохранить.

    мне сказали что это можно легко сделать регулярками (в смысле разделение)
    (хотя не проблема сделать несколько вложенных циклов, но все же...)
    как?
     
  11. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    202
    Likes Received:
    18
    Reputations:
    1
    Помогите пожалуйста с регуляркой:
    PHP:
    //В примере 3 нужных вида капчи.
    $str='<img src="http://site.ru/engine/lib/external/kcaptcha/index.php?PHPSESSID=fca3857811f1194d223b3005ca25db80" onclick="this.src=\'http://site.ru/engine/lib/external/kcaptcha/index.php?PHPSESSID=fca3857811f1194d223b3005ca25db80&n=\'+Math.random();" />
    <img src="/nospam_10704.jpeg" alt="" width="121" height="41" border="0" />
    <img src="http://site.ru/classes/lib/external/kcaptcha/index.php?PHPSESSID=9dd4892759b3745d578256e61acb0077">'
    ;

    preg_match_all('#<img src=\"(.+(kcaptcha|ospam|codegen|captcha).+)\".*#i'$str$capt);

    print_r($capt);
    Я вытаскиваю форму, а потом из неё пытаюсь выдернуть капчу. Но ничего не выходит...
    Вытаскиваю или с "мусором", какую-нибудь одну.
     
  12. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Что из примера тебе надо получить?
     
  13. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    202
    Likes Received:
    18
    Reputations:
    1
    Isis, мне нужен адрес капчи. У меня не получается регулярка, которая подходила бы под эти 3 капчи.
    Чтоб было понятней:
    PHP:
    $str='<img src="http://site.ru/engine/lib/external/kcaptcha/index.php?PHPSESSID=fca3857811f1194d223b3005ca25db  80" onclick="this.src=\'http://site.ru/engine/lib/external/kcaptcha/index.php?PHPSESSID=fca3857811f1194d223b3005ca25db  80&n=\'+Math.random();" />'

    preg_match_all('#<img src=\"(.+(kcaptcha|ospam|codegen|captcha).+)\".*#i'$str$capt); 

    print_r($capt); 
    PHP:
    $str='<img src="/nospam_10704.jpeg" alt="" width="121" height="41" border="0" />'

    preg_match_all('#<img src=\"(.+(kcaptcha|ospam|codegen|captcha).+)\".*#i'$str$capt); 

    print_r($capt); 
    PHP:
    $str='<img src="http://site.ru/classes/lib/external/kcaptcha/index.php?PHPSESSID=9dd4892759b3745d578256e61acb00  77">'

    preg_match_all('#<img src=\"(.+(kcaptcha|ospam|codegen|captcha).+)\".*#i'$str$capt); 

    print_r($capt); 
     
  14. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    202
    Likes Received:
    18
    Reputations:
    1
    Уже помогли, может кому пригодится:
    PHP:
    preg_match_all('#(?<=<img src=").+?(?:kcaptcha|ospam|codegen|captcha)[^"]+#i'$str$capt); 
     
  15. 0х00

    0х00 New Member

    Joined:
    3 Nov 2010
    Messages:
    7
    Likes Received:
    2
    Reputations:
    0
    Подскажите по mod_rewrite

    Скрипты движка находятся в директории /cgi-bin/
    Необходимо создать правило для всех запросов что то вроде

    /script.pl => /cgi-bin/script.pl

    а так же подскажите, как можно сделать исключение для общего плавила. а именно обращение к одной дирректории не перенаправлять. Спасибо.
     
  16. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    Нужна регулярка на PHP

    <span class="price">
    1 065&nbsp;<span class="cur">грн.</span>
    &ndash; 1 171&nbsp;<span class="cur">грн.</span>
    </span>

    Нужно вытащить 1 065 и 1 171. С меня +)
     
  17. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    PHP:
    $t preg_match('/(?:<span class="price"> 1 )(?:065|171)(?:&nbsp;<span class="cur">)/',$data)
     
  18. St0nX

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

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Подскажите с регуляркой.
    HTML:
    <a href="#" onclick="nastavKam('2', 'TRIGGERS')" style="color:black;font-weight:bold;text-decoration:underline;font-size:11px;font-family:Arial">TRIGGERS</a>
    Необходимо выдерать слово которое будет на месте TRIGGERS.
     
  19. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PHP:
    <?php
        $q 
    '<a href="#" onclick="nastavKam(\'2\', \'TRIGGERS\')" style="color:black;font-weight:bold;text-decoration:underline;font-size:11px;font-family:Arial">TRIGGERS</a>';
        
        if (
    preg_match('#<a href=".*?" onclick=".*?" style=".*?">(.*?)</a>#'$q$b))
        {
            
    var_dump($b[1]);
        }
     
    1 person likes this.
  20. snet

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    (PERL)
    есть строка:
    PHP:
    $asd="\"asdASD\" qwe123 \"123\"";
    #Мне надо выдернуть все что в ковычках, пытаюсь так:
    if($asd=~/\"([a-z0-9]{0,})\"/i){
    print $1;
    print $2;
    }
    выдерается только asdASD. Я даже не представляю как выдернуть две.

    ---добавлено---
    Получилось!
    Кому надо:
    PHP:
    $asd="\"asdASD\" qwe123 \"123\"";
    {
    local $_=$asd;
    print 
    "$1\n"
    while(m/\"([a-z0-9]{0,})\"/ig);
    }
     
    #1400 snet, 28 Jan 2011
    Last edited: 28 Jan 2011
Thread Status:
Not open for further replies.