PHP.SU

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

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

> Найдено сообщений: 72
duhon Отправлено: 29 Января, 2012 - 00:40:43 • Тема: Изменение атрибутов ссылки • Форум: Регулярные выражения

Ответов: 6
Просмотров: 585
попробуй так
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace('/<a href=(\S*)>(.*?)<\/a>/', '<a href=$1 target="_blank" class="a1">$2</a>', $text);
duhon Отправлено: 25 Января, 2012 - 20:16:27 • Тема: не могу составить регулярку на {example} • Форум: Регулярные выражения

Ответов: 2
Просмотров: 163
попробуй так
PHP:
скопировать код в буфер обмена
  1. $str = '{example}{example2}{example3} 343423344 {3434\{67\}3434}';
  2. preg_match_all('/(?<!\\\){(.+?)(?<!\\\)}/', $str, $mas);
  3. var_dump($mas[1]);
duhon Отправлено: 16 Января, 2012 - 20:24:03 • Тема: Нужен помощь • Форум: Регулярные выражения

Ответов: 7
Просмотров: 311
PHP:
скопировать код в буфер обмена
  1. class=\"стиль6\">([-+\d]+)</[^>]+>
duhon Отправлено: 12 Января, 2012 - 10:51:05 • Тема: Как удалить все слова, кроме некоторых? • Форум: Регулярные выражения

Ответов: 2
Просмотров: 427
попробуй такой вариант
PHP:
скопировать код в буфер обмена
  1. echo preg_replace('/.*?\b(aaa|bbb)\b.*?(?=(?1)|$)/s', '$1 ', 'qq www eee aaa vvv bbb aaa ddd');

пробел между словами можно убрать за ненадобностью, и для юникода(русские слова) нужно переделать \b
duhon Отправлено: 27 Декабря, 2011 - 18:43:26 • Тема: Вывести из текста слово с символом @ • Форум: Регулярные выражения

Ответов: 8
Просмотров: 382
1. Частично не соглашусь, от кавычек зависит что нужно экранировать. В какой то статье писалось что неправильное экранирование идет во вред регуряке по 3 причинам.
a) регурка делает лишние телодвижение что бы определить что экранировать ничего не нужно и что это не метасимвол.
b) в будущем \@ может стать метасимволом, и тогда регулярка после обновления вылетит с ошибкой.
с) регулярка стает менее читабельной, из за лишнего-ненужного символа, полюс порождает мысль что это неизвестный тебе метосимвол.(я вот задумался и просмотрел опять мануал, в поисках что за метопоследовательность)
2. Тут согласен. Но для новичков я бы посоветовал использовать \S, так как [^...] дополнительные телодвижения для механизма PCRE, в сторону производительности и внутрених оптимизаций.
3. Тут вообще не согласен. В мануале имелось введу про то что если в искомом тексте нету перевода строки, то ^ и $ не меняют свое повидение, или если в искомой строке есть переводы строк но нету ^ и $, тоже не имеет смысла. Буду очень рад если ты примером докажешь обратное.
4. С утфом в регексах от версии к версии все как то не стабильно, но использование u подключает нехилую таблицу юникода, да и не все еще перешли на utf-8

З.Ы. написал ответ просто для информационности новичков
duhon Отправлено: 21 Декабря, 2011 - 10:37:46 • Тема: Вывести из текста слово с символом @ • Форум: Регулярные выражения

Ответов: 8
Просмотров: 382
EuGen пишет:
'/\@[^\s]+/mu'

пару вопросов
1) зачем слешить @ если регекс в одиночных кавычках?
2) зачем сложная [^\s] если есть \S?
3) зачем модификатор m если нету ^ и $?
4) зачем модификатор u если в регексе нету намека на использование расширенной таблицы символов?

З.ы. я не подправляю, просто чувствую что чего то не понимаю. Возможно это какието оптимизации?
duhon Отправлено: 21 Декабря, 2011 - 10:26:50 • Тема: preg_match_all • Форум: Регулярные выражения

Ответов: 23
Просмотров: 1715
Alekseev1612 пишет:
неа, не поможет

а конкретней? не подходит по требованиям или не отрабатывается?
duhon Отправлено: 21 Декабря, 2011 - 10:21:44 • Тема: Помогите исправить регулярку • Форум: Регулярные выражения

Ответов: 8
Просмотров: 382
vasnihaev пишет:
Пишу простенький поиск, так вот есть такой момент - есть предложение, и есть запрос, нужно найти вхождения запроса, вначале каждого слова предложения, например:
Продается гараж по улице беговая, недорого.
Запрос - бег.


попробуй так
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\bбег\w{0,3}\b/u', 'нужно бегать но не беговая, или даже в конце беговая', $matches);

или без юникода
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/(?<![а-яё])бег[а-яё]{0,3}(?![а-яё])/', 'нужно бегать но не беговая, или даже в конце беговая', $matches);
duhon Отправлено: 18 Декабря, 2011 - 17:21:43 • Тема: Подмаска в регулярном выражении • Форум: Регулярные выражения

Ответов: 2
Просмотров: 144
попробуй так
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $black_list='"ветер перемен:Ветер перемен:20:c168.gif;Ветер Морайи;&#9650Зам.Главы:0:0:0:0:lights.gif;Дети Света",
  3. "фреон500:фреон500:21::0:0:0:0:0",';
  4. preg_match_all('#"[^:"]+:([^:"]+)[^;"]*(?:;([^;"]*);[^"]*)?"#', $black_list, $arr);
  5. print_r($arr);
  6. ?>
duhon Отправлено: 18 Декабря, 2011 - 13:21:29 • Тема: preg_match_all • Форум: Регулярные выражения

Ответов: 23
Просмотров: 1715
Alekseev1612 пишет:
duhon пишет:
preg_match_all('/\[(img|poster)=.*?\](.*?)\[\/\1:.*?\]/i', $tor['post_text'], $out);

не пойму а зачем цифра 1?


вместо конструкции \1 подставляться значение первой подгрупы(img|poster), тоесть или img или poster.
если первый тэг был img то значит мы ожидаем закрывающий тега img
duhon Отправлено: 18 Декабря, 2011 - 13:11:32 • Тема: preg_match_all • Форум: Регулярные выражения

Ответов: 23
Просмотров: 1715
вот такой эффект тебе нужен?
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\[(img|poster)=.*?\](.*?)\[\/\1:.*?\]/i', $tor['post_text'], $out);
duhon Отправлено: 24 Ноября, 2011 - 14:21:40 • Тема: Регулярное выражение валидность email • Форум: Регулярные выражения

Ответов: 1
Просмотров: 161
Попробуй так
CODE (php):
скопировать код в буфер обмена
  1. /^[\pL0-9_-]{1,20}@(([\pL0-9-]+\.)+(com|net|org|mil|".
  2.   "edu|gov|arpa|info|biz|inc|name|\pL{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-".
  3.   "9]{1,3}\.[0-9]{1,3})$/uis

Страниц (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