regexp последнего совпадения. как?

nik-n

Client
Регистрация
05.11.2016
Сообщения
242
Благодарностей
20
Баллы
18
можно ли через Regexp получить последнее совпадение?
в самом кубике "обработка текста" есть вроде такая фигня, но там берет самое длинное совпадение (хотя при составлении регулярки ставил галочку "Самое короткое совпадение")

например надо получить последний кусок у которого
начало: "<a href="#domain.com/link"
конец: "постоянный текст"

HTML:
<tr>
    <div>
        <a href="www.domain.com/link111111>текст ссылки</a>
    </div>
    <div>
        <span>постоянный текст</span>
    </div>
</tr>

<tr>
    <div>
        <a href="www.domain.com/link222222>текст ссылки</a>
    </div>
    <div>
        <span>постоянный текст</span>
    </div>
</tr>

<tr>
    <div>
        <a href="www.domain.com/link333333>текст ссылки</a>
    </div>
    <div>
        <span>постоянный текст</span>
    </div>
</tr>
т.е. в итоге мне нужно вот это:
HTML:
<a href="www.domain.com/link333333>текст ссылки</a>
    </div>
    <div>
        <span>постоянный текст
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Самое короткое не работает так, как все думают. Приоритет - первое подходящее всегда. Самое короткое означает, что дальше поиск не пойдёт по этому значению, если оно может быть длинее
Делай правильную регулярку (более точную, конкретную) и всё будет работать
 

Шива

Client
Регистрация
05.02.2018
Сообщения
1 088
Благодарностей
341
Баллы
83
Как самый простой вариант парсить все в список и брать последнее из списка.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

nik-n

Client
Регистрация
05.11.2016
Сообщения
242
Благодарностей
20
Баллы
18
я не понял, нет решения что ли?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
решение создать более точную, узконаправленную регулярку, не с помощью конструктора рег выражений
 

Crypto Life

Client
Регистрация
16.08.2018
Сообщения
39
Благодарностей
1
Баллы
8
я не понял, нет решения что ли?
Вам про список Шива верно посоветовал. Составляете регулярку так чтобы выхватывало такие куски как вам нужно, их к примеру найдется 10 штук, кидаете результат в список и берете последнею строку, профит).
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
Самое короткое не работает так, как все думают. Приоритет - первое подходящее всегда. Самое короткое означает, что дальше поиск не пойдёт по этому значению, если оно может быть длинее
Делай правильную регулярку (более точную, конкретную) и всё будет работать
Я проверил, нормально регулярка работает выдает 3 ответа.

Так что можно смело вариант со списком использовать.

2019-03-27_000349.jpg
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Я проверил, нормально регулярка работает выдает 3 ответа.

Так что можно смело вариант со списком использовать.

Посмотреть вложение 37543
чё вы все так в этот список вцепились? кубик и так позволяет взять последнее значение. Это первое.
Второе, готов поспорить, что постоянный текст не одинаков в каждом из элементов. И если этот самый текст в последнем элементе и больше такого текста нигде нет - возьмёт всё хтмл полотно от первого удачного условия и до этого текста
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
чё вы все так в этот список вцепились? кубик и так позволяет взять последнее значение. Это первое.
Второе, готов поспорить, что постоянный текст не одинаков в каждом из элементов. И если этот самый текст в последнем элементе и больше такого текста нигде нет - возьмёт всё хтмл полотно от первого удачного условия и до этого текста
Ну так человеку нужно было решение. Мы его предоставили. Пусть даже в твоих глазах оно выглядит как костыли.))

По поводу постоянного текста это уже не наша проблема. Что дали с тем и работаем))
 

kolina

Client
Регистрация
05.10.2019
Сообщения
165
Благодарностей
47
Баллы
28
У меня была такая ситуация. Мне при каждом выполнении шаблона нужно было Regex получить определённые ссылки с страницы, и выбрать свежую(последнюю) Они постоянно менялись но у свежих ссылок в URL всегда была большая последняя цыфра. Так вот когда я отбирал Regex список ссылок с страницы и брал первое совпадение то, бралась ссылка с самым маленьким числом в конце ссылки ( а мне нужно наоборот, с самым большим числом).

Решение я нашел такое: Regex собирал все ссылки, клал их в список. А в список ссылки записывались так что ссылка с самым большим значением была в первой строчке. Я брал первую с списка, и использовал её для необходимых действий.

Меньше месяца использую ZEENKу, думаю профессионалы используют другой способ, но я без знания С# сделал так на кубиках.
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
Решение я нашел такое: Regex собирал все ссылки, клал их в список. А в список ссылки записывались так что ссылка с самым большим значением была в первой строчке. Я брал первую с списка, и использовал её для необходимых действий.

Меньше месяца использую ZEENKу, думаю профессионалы используют другой способ, но я без знания С# сделал так на кубиках.
Нормальный способ. =)
 
  • Спасибо
Реакции: kolina

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