PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (5): « 1 2 3 [4] 5 »

> Найдено сообщений: 72
duhon Отправлено: 20 Января, 2014 - 10:46:55 • Тема: Регулярка • Форум: Регулярные выражения

Ответов: 4
Просмотров: 255
sublime text неимею, но я так понял проблема в строке
"Ботинки теплые (08.01.2014) замш (2014) новье" которая превращаеться в "Ботинки теплые (08.01.2014, купить) замш (2014, купить) новье" а нужно "Ботинки теплые (08.01.2014) замш (2014, купить) новье"

попробуй так
CODE (htmlphp):
скопировать код в буфер обмена
  1. (?<=\d{2})\)(?!.*\d{2}\))
duhon Отправлено: 17 Января, 2014 - 15:37:31 • Тема: Помогите составить регулярное выражение preg_replace • Форум: Регулярные выражения

Ответов: 3
Просмотров: 176
preg_replace нужен для замены всей строки, а ощущение что вам нужно только получить данные preg_match_all, а потом уже, если нужно, склеить из данных все что угодно, и в таком случае вытаскивать из первой группы результат.
duhon Отправлено: 17 Января, 2014 - 13:28:58 • Тема: Помогите заменить eregi() в скрипте.. • Форум: Регулярные выражения

Ответов: 4
Просмотров: 276
с ошибки все понятно и так
читайте мануал http://php.net/manual/ru/function.eregi.php там красным цветом описана ваша проблема
duhon Отправлено: 10 Января, 2014 - 11:48:28 • Тема: Поиск ссылок на странице • Форум: Регулярные выражения

Ответов: 3
Просмотров: 245
начни с гугла 'найти все url php' + [url]php.net/manual/ru/function.parse-url.php[/url]
duhon Отправлено: 10 Января, 2014 - 11:35:17 • Тема: Замена слова между пробелами/началом или концом строки • Форум: Регулярные выражения

Ответов: 8
Просмотров: 547
помоему все просто
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $variants = array(
  3.   'text #var',
  4.   '#bar text',
  5.   'text #blog text',
  6.   'text#blog',
  7.   'text #blogs',
  8.   '#blog 1',
  9.   'text #blogs text',
  10.   "multi lines\n#blog text",
  11.   "multi lines\ntext #blog\ntext",
  12.   'русс#blogрусс'
  13. );
  14. $regs =  array(
  15.   'rav'=>'/\B#var\b/iu',
  16.   'rab'=>'/\B#bar\b/iu',
  17.   'glob'=>'/\B#blog\b/iu'
  18. );
  19. print_r(preg_replace($regs, array_keys($regs), $variants));
  20. //пример для unicode входящей строки, иначе \b для кирилицы не сработает
  21.  
  22. //результат
  23. /*Array
  24. (
  25.     [0] => text rav
  26.     [1] => rab text
  27.     [2] => text glob text
  28.     [3] => text#blog
  29.     [4] => text #blogs
  30.     [5] => glob 1
  31.     [6] => text #blogs text
  32.     [7] => multi lines
  33. glob text
  34.     [8] => multi lines
  35. text glob
  36. text
  37.     [9] => русс#blogрусс
  38. )
  39. */
  40.  
duhon Отправлено: 06 Января, 2014 - 12:01:14 • Тема: Нужно немного дополнить регулярку • Форум: Регулярные выражения

Ответов: 3
Просмотров: 287
/[a-z]+\:\/\/[a-z0-9-]*[a-z0-9]+$/uim
duhon Отправлено: 19 Декабря, 2013 - 17:53:05 • Тема: последняя td • Форум: Регулярные выражения

Ответов: 3
Просмотров: 217
может так
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php preg_match_all('%<td>\K(?:(?!<td>).)+(?=</td>\s*</tr>)%s', $subject, $result);
duhon Отправлено: 16 Декабря, 2013 - 16:10:00 • Тема: preg_match_all() - паттерн вырезания текста • Форум: Регулярные выражения

Ответов: 2
Просмотров: 224

подходит?
duhon Отправлено: 16 Декабря, 2013 - 10:22:57 • Тема: Нужна помощь в регулярном выражении • Форум: Регулярные выражения

Ответов: 1
Просмотров: 157
вообще регулярка тут нормально поможет только с нахождением site.ru в href, а остальные условия уже для парсера html

могу предложить очень теоретический вариант
в исходный текст я добавил предпологаемый </tr> на который привязался

PHP:
скопировать код в буфер обмена
  1. $html = "<tr>
  2. <td><a href='/simplesearch?domainsimple=site1.ru&fromadvs=1'>site.ru</a></td>
  3. <td><font color='green'>трали вали</font><div style='margin: 3px 0 3px 0;'><a style='font-size: x-small; color: green;' target='_blank' href='https://www.nic.ru/manager/registration.cgi?ipartner=3140&step=new_srv.select_pack&new_domain=site.ru&Next=1&rst=all' title='site.ru трали вали'>трали вали&#338; <img border='0' src='/img/green.gif'></a></div></td>
  4. <td>
  5. <font style='color: #f5989d;'>нет IP</font>
  6. </td>
  7. </tr><tr>
  8. <td><a href='/simplesearch?domainsimple=site2.ru&fromadvs=1'>site2.ru</a></td>
  9. <td><font color='green'>Свободен</font><div style='margin: 3px 0 3px 0;'><a style='font-size: x-small; color: green;' target='_blank' href='https://www.nic.ru/manager/registration.cgi?ipartner=3140&step=new_srv.select_pack&new_domain=site.ru&Next=1&rst=all'>трали вали&#338; <img border='0' src='/img/green.gif'></a></div></td>
  10. <td>
  11. <font style='color: #f5989d;'>IP 13135131385135</font>
  12. </td>
  13. </tr>
  14. <tr>
  15. <td><a href='/simplesearch?domainsimple=site3.ru&fromadvs=1'>site.ru</a></td>
  16. <td><font color='green'>трали вали</font><div style='margin: 3px 0 3px 0;'><a style='font-size: x-small; color: green;' target='_blank' href='https://www.nic.ru/manager/registration.cgi?ipartner=3140&step=new_srv.select_pack&new_domain=site.ru&Next=1&rst=all'>трали вали&#338; <img border='0' src='/img/green.gif'></a></div></td>
  17. <td>
  18. <font style='color: #f5989d;'>нет IP</font>
  19. </td>
  20. </tr>";
  21.  
  22. if (preg_match('%(?<=<a\shref=["\']/simplesearch\?domainsimple=)[^&]+(?=(?:(?!</tr>).)*?нет\sIP</font>\s*</td>\s*</tr>)%s', $html, $regs)) {
  23.         $result = $regs[0];
  24. }
duhon Отправлено: 12 Декабря, 2013 - 11:00:36 • Тема: preg_replace help! • Форум: Регулярные выражения

Ответов: 22
Просмотров: 870
teddy пишет:

Не понял ты что гониш?
наверно имелось введу
duhon Отправлено: 03 Декабря, 2013 - 12:06:12 • Тема: регулярное выражение замены в тегах • Форум: Регулярные выражения

Ответов: 3
Просмотров: 332
к первому вопросу придумал такое. (тут явно можно пооптимизировать избавившись от второго прега в пользу str_replace c масивами)
PHP:
скопировать код в буфер обмена
  1. $str = "<a href='http://site.com' title='abc' ppts='fsaf' id='href' class='a'>ABCDE</a>";
  2. $new_str = preg_replace_callback('/(?<=<)[^>]+(?=>)/', function($tag){
  3.    return preg_replace_callback('/a|e|i|o|u|y/', function($char){
  4.       return '&'.ord($char[0]).';';
  5.    }, $tag[0]);
  6. }, $str);

к второму вопросу придумал такую регулярку
duhon Отправлено: 27 Ноября, 2013 - 10:56:16 • Тема: парсер • Форум: Регулярные выражения

Ответов: 7
Просмотров: 698
вариант с регулярками и без разделения на 2 массива

PHP:
скопировать код в буфер обмена
  1. $str = 'ESS Update (Windows; U; 32bit; PVT F; BPC 7.0.302.26; OS: 6.1.7601 SP 3.0 NT; TDB 15680; CL 1.1.1; x64c; APP ess; BEO 1; ASP 0.0; FW 0.0; PX 0; PUA 1; RA 0; HWF: 01007068-8092-2C19-E928-E76E51C8CA5E; PLOC ru; PCODE 110.0.0; PAR 0; ATH 2; DC 0)';
  2. $str = substr($str, 12, -1);
  3.  
  4. preg_match_all('/(\w+):?(?:\s+([^;]++))?/', $str, $match);
  5. $result = array_combine($match[1], $match[2]);
  6.  
  7. print_r($result);


результат будет
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [Windows] =>
  4.     [U] =>
  5.     [32bit] =>
  6.     [PVT] => F
  7.     [BPC] => 7.0.302.26
  8.     [OS] => 6.1.7601 SP 3.0 NT
  9.     [TDB] => 15680
  10.     [CL] => 1.1.1
  11.     [x64c] =>
  12.     [APP] => ess
  13.     [BEO] => 1
  14.     [ASP] => 0.0
  15.     [FW] => 0.0
  16.     [PX] => 0
  17.     [PUA] => 1
  18.     [RA] => 0
  19.     [HWF] => 01007068-8092-2C18-E928-E76E51C8CA5E
  20.     [PLOC] => ru
  21.     [PCODE] => 110.0.0
  22.     [PAR] => 0
  23.     [ATH] => 2
  24.     [DC] => 0
  25. )
  26.  
duhon Отправлено: 27 Ноября, 2013 - 09:55:31 • Тема: Проблема с регулярным выражениям • Форум: Регулярные выражения

Ответов: 1
Просмотров: 173
в нерабочем примере на пятой строке пропущен знак '
может из за этого Радость
duhon Отправлено: 02 Февраля, 2012 - 22:00:56 • Тема: Как вытащить ссылки из текста? • Форум: Регулярные выражения

Ответов: 13
Просмотров: 1092
illy пишет:
вроде так Огорчение
PHP:
скопировать код в буфер обмена
  1. "#(http://youtu.be/([\w\-]+))(\s|\n|$)#isuU"

а зачем \n если есть \s
duhon Отправлено: 29 Января, 2012 - 13:30:20 • Тема: Изменение атрибутов ссылки • Форум: Регулярные выражения

Ответов: 6
Просмотров: 585
тогда походу проще воспользваться PHP Simple HTML DOM Parser или аналогами в парсенге дум модели.
Например из мануала
PHP:
скопировать код в буфер обмена
  1. $html = file_get_html('http://www.google.com/');
  2. // Find all links
  3. foreach($html->find('a') as $element)
  4.        echo $element->href . '<br>';


Тамже найдешь и замену и любые атрибуты и их значения.

Страниц (5): « 1 2 3 [4] 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB