Модераторы: ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> очистить от ненужны атрибутов 
V
    Опции темы
Evghenusi
Дата 4.9.2011, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: нет
Всего: 15



Цитата(Pfailed @  4.9.2011,  07:54 Найти цитируемый пост)
Кстати, в php поддерживаются \K и \G? 
запутался я, вопрос задавали в разделе JavaScript. В JS выдаёт ошибку  "invalid quantifier", либо у меня кривые руки, а в PHP (5.3) срабатывает на ура.

Цитата(Pfailed @  4.9.2011,  07:03 Найти цитируемый пост)
Потому что мы знаем, что если захватили слово, но там colspan или rowspan, то нет смысла уменьшать захваченное и пытаться найти "=" после этого. 
при тестировании убрал второй "+" и РВ не потеряло работоспособность, поэтому и спросил.

Спасибо за решение, для меня это был больше спортивный интерес.....пойду читать что такое "\K"  smile 
PM WWW   Вверх
alezzz
Дата 4.9.2011, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 11
Всего: 14



Цитата(Evghenusi @  4.9.2011,  10:57 Найти цитируемый пост)
пойду читать что такое "\K"

почему-то perlretut не знает про \K, но судя по описанию Pfailed следующие выражения по смыслу одинаковы:
Код

s/\d+\K\D+//;
s/(\d+)\D+/$1/;

гараздо интереснее \G

Цитата(Evghenusi @  4.9.2011,  10:57 Найти цитируемый пост)
вопрос задавали в разделе JavaScript. В JS выдаёт ошибку  "invalid quantifier"

незнаю как для JS, в языках в которых нет встроенной поддержки РВ должно быть несколько библиотек для работы РВ. Читал что библиотеки для Java (а может VB, уже не помню) поддерживают любые выражения при просмотре назад.

PM MAIL   Вверх
Pfailed
Дата 4.9.2011, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 6
Всего: 39



Цитата(Evghenusi @  4.9.2011,  10:57 Найти цитируемый пост)
при тестировании убрал второй "+" и РВ не потеряло работоспособность, поэтому и спросил.

Оно работает, но менее эффективно, будет 7 лишних возврата (или около того).
Можно добавить в скрипт 
Код

use re 'debugcolor';

и увидеть как работает со сверх жадным и просто жадным.
Я посмотрел и понял, что вся регулярка работает неэффективно. Написал еще 1 вариант, который мне больше нравится
Код

s/
(?: <td | \G )                       # beginning of the tag or pos()
(?:\s+(?:colspan|rowspan)="[^"]+")*+ # colspan or rowspan one or more times
\K                                   # do not replace any on the left side
\s+\w+                               # parameter name
="[^"]+"                             # parameter value
//xg;


Цитата(alezzz @  4.9.2011,  13:35 Найти цитируемый пост)
почему-то perlretut не знает про \K

В perlre есть и про \K и про \G. Я про них сам только вчера узнал толком, из моей темы с perlmonks.


--------------------
PM MAIL   Вверх
Evghenusi
Дата 4.9.2011, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: нет
Всего: 15



Цитата(alezzz @  4.9.2011,  13:35 Найти цитируемый пост)
гараздо интереснее \G
 уже встречал до поднятия этой темы, в отличии от \K smile

оффтоп
Цитата(Pfailed @  4.9.2011,  13:54 Найти цитируемый пост)
....и увидеть как работает со сверх жадным и просто жадным.

а есть онлайн сервис где это можно наблюдать?, а то за перл ещё не скоро возьмусь  smile

Это сообщение отредактировал(а) Evghenusi - 4.9.2011, 16:55
PM WWW   Вверх
alezzz
Дата 4.9.2011, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 11
Всего: 14



Цитата(Evghenusi @  4.9.2011,  16:53 Найти цитируемый пост)
а есть онлайн сервис где это можно наблюдать?

можно и оффлайн без глубоких знаний perl
возмите такой шаблон:
Код

use re 'debug';

my $s = "ab c";
$s =~ /\w+/;

и подставляйте в него нужные данные.

Это сообщение отредактировал(а) alezzz - 4.9.2011, 20:25
PM MAIL   Вверх
Evghenusi
Дата 4.9.2011, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: нет
Всего: 15



alezzz, я привык что для пхп надо Дэнвер (к примеру) запускать, ну или если что-то мелкое то проверить на http://codepad.org/ , но там надо вписать кроме кода <?php  ... ?> , а как работать с перл я не в зуб ногой, поэтому и спросил про онлайн сервис.
http://codepad.org/BKjp6kyr больше ничего не надо?
PM WWW   Вверх
dixoNICH
Дата 4.9.2011, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 222
Регистрация: 20.3.2011

Репутация: нет
Всего: нет



ideone.com
PM MAIL   Вверх
alezzz
Дата 4.9.2011, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 11
Всего: 14



Цитата(Evghenusi @  4.9.2011,  21:06 Найти цитируемый пост)
http://codepad.org/BKjp6kyr больше ничего не надо?

чем не вариант, можно и так.

PM MAIL   Вверх
Evghenusi
Дата 5.9.2011, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: нет
Всего: 15



Цитата(dixoNICH @  4.9.2011,  22:16 Найти цитируемый пост)
ideone.com 

спасибо. не встречал.

Цитата(alezzz @  4.9.2011,  22:41 Найти цитируемый пост)
чем не вариант, можно и так.

спасибо.
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.