Подскажите регулярку

proffyes

Client
Регистрация
16.07.2015
Сообщения
409
Благодарностей
19
Баллы
18
Помогите составить регулярку к такому коду

<a class="classname" href="/НУЖНЫЙ_ТЕКСТ">[конец строки]
[разное количество пробелов 5-8 шт]<img class="classname2"
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 643
Баллы
113
такие регулярки без проблем клепаются в конструкторе. не надо какие-то дополнительные модифиаторы и тд. Вписываешь начало, вписываешь конец, ставишь галки. ВСЁ
В чем запара?
 

proffyes

Client
Регистрация
16.07.2015
Сообщения
409
Благодарностей
19
Баллы
18
Проблнма в этом

">[конец строки]
[разное количество пробелов 5-8 шт]...

в конструктор копируется только
">
эта часть не вставляется вообще

[конец строки]
[разное количество пробелов 5-8 шт]<img class="classname2"
 

Danny

Client
Регистрация
29.09.2014
Сообщения
711
Благодарностей
154
Баллы
43
Попробуй так:

(?<=<a\ class="classname"\ href="/).*?(?=">\r\n\W+<img class="classname2")
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 643
Баллы
113
Я понял. изначально не так увидел задачу.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 643
Баллы
113
(?<=<a\ class="classname"\ href=").+?(?=">[^<]+<img\ class="classname2"\ )
 

proffyes

Client
Регистрация
16.07.2015
Сообщения
409
Благодарностей
19
Баллы
18
(?<=<a\ class="classname"\ href=").+?(?=">[^<]+<img\ class="classname2"\ )
Спасибо работает!!!!!!!
а как вообще правильно конец строки указывать?
Если можно на простом примере:
93953<конец строки>
НУЖНЫЙ ТЕКСТ:aaaa
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 452
Благодарностей
1 886
Баллы
113
Конец строки обозначается знаком $
Но это именно конец последней строки.
Если нужно, чтобы не учитывались переносы и конец каждой строки учитывался именно, как конец этой строки, то перед регуляркой нужно прописать (?m)
 

proffyes

Client
Регистрация
16.07.2015
Сообщения
409
Благодарностей
19
Баллы
18
Опять похожи вопрос возник. Код такой
ZENON</td>
<td>R11.48</td>

нужно найти число 11.48
в конструкторе это не получается сделать, так как на сколько я понимаю после ZENNO</td> стоит конец строки, а перед <td> начало. Конструктор предлагает (?<=ZENON</td><td>R)[\w\W]*?(?=</td>). Как правильно написать такую регулярку?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 576
Благодарностей
9 189
Баллы
113
Опять похожи вопрос возник. Код такой
ZENON</td>
<td>R11.48</td>

нужно найти число 11.48
в конструкторе это не получается сделать, так как на сколько я понимаю после ZENNO</td> стоит конец строки, а перед <td> начало. Конструктор предлагает (?<=ZENON</td><td>R)[\w\W]*?(?=</td>). Как правильно написать такую регулярку?
Код:
(?<=ZENON</td>\n<td>R)[\w\W]*?(?=</td>)
 

proffyes

Client
Регистрация
16.07.2015
Сообщения
409
Благодарностей
19
Баллы
18

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 576
Благодарностей
9 189
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 126
Баллы
113
  • Спасибо
Реакции: Sergodjan

proffyes

Client
Регистрация
16.07.2015
Сообщения
409
Благодарностей
19
Баллы
18
Покурил регулярки посмотрел код и сам сделал, вдруг кому полезно будет:

(?<=ZENON</td>\s{1,}<td>R)[\w\W]*?(?=</td>)

Код хитрый, он каждый раз в конце строки ставит несколько пробелов. Поэтому \s{1,} пробельный символ от одного и больше.
 

etyipin

Client
Регистрация
15.12.2017
Сообщения
95
Благодарностей
35
Баллы
18
Покурил регулярки посмотрел код и сам сделал, вдруг кому полезно будет:

(?<=ZENON</td>\s{1,}<td>R)[\w\W]*?(?=</td>)

Код хитрый, он каждый раз в конце строки ставит несколько пробелов. Поэтому \s{1,} пробельный символ от одного и больше.
{1,} можно заменить на +, будет немного красивей и короче
 

Solus

Client
Регистрация
14.04.2014
Сообщения
378
Благодарностей
120
Баллы
43
А так не пойдет? \d+.*?(?=<)
или так (?<=ZENON</td>\s+<td>.*?)\d.*(?=<)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)