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

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

Thread Status:
Not open for further replies.
  1. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    '#<div class="main-text mem">(.*)</div>#is'
     
  2. acdel

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

    Joined:
    7 Jan 2008
    Messages:
    131
    Likes Received:
    57
    Reputations:
    3
    регулярка

    Проверил онлайн чекалкой, работает. Пробуй эту.
    PHP:
    [^<>]+(?=[<])
     
  3. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Люди помогите ! Работаю с большими списками категорий из которых нужно повыдирать ID номер.. вообщем нужно оставить только номер из такого вот кода :

    Code:
    <li class="cat-item-126"><a href="http://site.com/?cat=126" title="Visualizza tutti gli articoli archiviati in Turism">Turism</a>
    </li>
    
    Нужно оставить цифру 126 остальное все удалить (их тут две любую из них можно оставить)

    Спасибо !
     
  4. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Подскажите, как с помощью регулярки получить число из такого текста:
    PHP:
    буковки буковки 1234567890 буковки буковки
    Расположение цифр мне не известно (могут быть в начале или в конце текста). Знаю только то, что у них фиксированная длина (10 символов).

    Как получить это число целиком ?
     
  5. Alekzzzander

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

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    \d - любой цифровой символ [0-9]

    ^[\d]*$ - так может выглядет шаблон

    тЫц
     
    #1205 Alekzzzander, 22 Jul 2010
    Last edited: 22 Jul 2010
  6. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    /\d{10}/
     
  7. spamoney

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

    Joined:
    26 Dec 2006
    Messages:
    120
    Likes Received:
    7
    Reputations:
    1
    Здравствуйте, помогите сделать регулярное выражение для замены:

    Code:
    Список-1:
    [li]Example-1    [li]Example-1-2 текст [li]Example-1-3 [li]Example-1-4
    
    Список-2:
    Текст [li]Example-2-1    [li]Example-2-2 текст [li]Example-2-3 [li]Example-2-4
    
    Список-3:
    [li]Example-3-1
    
    Текст [li]Example-3-2
    
    [li]Example-3-3
    [li]Example-3-4
    
    На:
    Code:
    Список-1:
    <li>Example-1    </li><li>Example-1-2 текст </li><li>Example-1-3 </li><li>Example-1-4</li>
    
    Список-2:
    Текст <li>Example-2-1    </li><li>Example-2-2 текст </li><li>Example-2-3 </li><li>Example-2-4</li>
    
    Список-3:
    <li>Example-3-1</li>
    
    Текст <li>Example-3-2</li>
    
    <li>Example-3-3</li>
    <li>Example-3-4</li>
    Сам смог додуматься только до:
    Code:
    $a[] = "#\[li\]([^(\r\n|\[li\])]*)#si";
    $b[] = "<li>\\1</li>";
    $sourse="
    Список-1:
    [li]Example-1    [li]Example-1-2 текст [li]Example-1-3 [li]Example-1-4
    
    Список-2:
    Текст [li]Example-2-1    [li]Example-2-2 текст [li]Example-2-3 [li]Example-2-4
    
    Список-3:
    [li]Example-3-1
    
    Текст [li]Example-3-2
    
    [li]Example-3-3
    [li]Example-3-4
    ";
    echo preg_replace($a, $b, $sourse);
    
    Но результат выходит неверный:
    Code:
    Список-1:
    <li>Examp</li>le-1    <li>Examp</li>le-1-2 текст <li>Examp</li>le-1-3 <li>Examp</li>le-1-4
    
    Список-2:
    Текст <li>Examp</li>le-2-1    <li>Examp</li>le-2-2 текст <li>Examp</li>le-2-3 <li>Examp</li>le-2-4
    
    Список-3:
    <li>Examp</li>le-3-1
    
    Текст <li>Examp</li>le-3-2
    
    <li>Examp</li>le-3-3
    <li>Examp</li>le-3-4
    
     
    #1207 spamoney, 23 Jul 2010
    Last edited: 23 Jul 2010
  8. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Попробуйте так
    PHP:
    preg_replace ('/\[li\](.+?)((?=\[li\])|\n|\Z)/''<li>$1</li>'$str);
     
    1 person likes this.
  9. SkyLine32

    SkyLine32 Member

    Joined:
    1 Mar 2009
    Messages:
    144
    Likes Received:
    22
    Reputations:
    2
    Привет всем! Помогите с .htaccess. Нужно заменить все пробелы а именно %20 (раз%20два%20три) в ссылках на +

    Очень надеюсь на помощь, спасибо!
     
  10. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    PHP:
    preg_replace("\%20""#\+#iUms"$text);
     
    #1210 SHiNiGaMi, 28 Jul 2010
    Last edited: 28 Jul 2010
  11. Houze

    Houze New Member

    Joined:
    16 May 2009
    Messages:
    65
    Likes Received:
    4
    Reputations:
    0
    *</b> Hello World! </td>
    если такой код то вполне подходит регулярка
    preg_match_all('/\*<\/b> (.*) <\/td>/', $file_news, $password);

    а если вот такой
    *</b>
    Hello World! </td>

    то какая будет регулярка.? Я что непробовал - ничего не помогло.
     
  12. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    m - многострочный поиск, s - символ "." соответствует еще и переводу строки, то есть
    PHP:
    preg_match_all('/\*<\/b> (.*) <\/td>/ms'$file_news$password);
     
    1 person likes this.
  13. Alekzzzander

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

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    есть у меня в .htaccess такая строчка
    RewriteRule ^index.htm$ index.php
    она создает ссылку на файл index.php, как сделать что бы файл index.php нельзя было открыть, а в строке браузера всегда отображалось только index.htm?
     
  14. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    мб на javascript:
    Code:
    <script language="JavaScript">
    if(document.location == "index.php")
      location.href = "index.htm";
    </script>
     
  15. Alekzzzander

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

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    мне флаг [R] не дает покоя, может он? но тогда как правильно?
     
  16. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    PHP:
    if (preg_match ('/(.+) +<(.+)>/'$from$mail)) {
        
    $mail[1] = urlencode ($mail[1]);
        
    $mail[1] = str_replace ('%''='$mail[1]); 
        
    $mail[1] = str_replace ('+''_'$mail[1]);
        
    $itog_from '=?UTF-8?Q?'.$mail[1].'?= <'.$mail[2].'>';
        } else {
    $itog_from "$from *";
        }
    Привожу полный листинг кода, чтоб было понятно.

    на входе поступает строка Вася пупкин<[email protected]>
    Скрипт ее обрабатывает, чтоб на почтовом сервере небыло проблем с кодировкой.

    Но если строка имеет вид Вася пупкин <[email protected]> (пробел между именем и почтой) то все работает а если просто Вася пупкин<[email protected]> то нет.
    Подскажите как исправить?
     
  17. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    PHP:
    preg_match ('/(.+)+\s?<(.+)>/'$from$mail);
     
    1 person likes this.
  18. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Помогите с регуляркой.
    Спарсить надо то что между <from nick=" " race_id и <text> </text> причем все значения меняются постоянно.
    PHP:
    <root error="0">
    <
    mesages>
    <
    message id="582477" type="3" time="1280467509" channel="T100" to_me="0" from_me="0">
    <
    from nick="Корехфан" race_id="1" rank="3" cln="119" avatar="11_chat.jpg"/>
    <
    to/>
    <
    text>
    Текст
    </text>
    </
    message>
    </
    mesages>
    <
    status last_grp_id="582477" last_prv_id="0" loc_id="100" reload_in="3" message_sent="0" timer="0"/>
    </
    root>
     
  19. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1

    К сожелению не работает.
    Нужно чтоб регулярка срабатывала если пробел есть и если его нет,если есть пробел после > как-то так))))
     
  20. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    Rastamanka
    PHP:
     preg_match('#<from nick="(.*)" race_id=".+" rank=".+" cln=".+" avatar=".*"/>#',$result,$nick);
    -=Zhenek=-
    PHP:
    preg_match('#(.*)\s?<(.*)>#',$from$mail); 
     
Thread Status:
Not open for further replies.