Не отрабатывает регулярка последнего вхождения

Тема в разделе "Функции поиск-замены и регулярные выражения", создана пользователем dima911, 24 фев 2021.

  1. dima911

    dima911 New Member Пользователи

    Регистрация:
    5 апр 2018
    Сообщения:
    89
    Город:
    Волгоград
    Не выполняется регулярное выражение. На всех тестерах работает отлично.
    Модификатор выставлен как s остальные стерты.
    Регулярка
    /<4(?!.*<div).*<span>/s
    в коде указываю re:<4(?!.*<div).*|<44444444>
    т.е. найти последнее вхождение правила и заменить его на тег <44444444>
    Сам текст в котором делается замена
    <a id="id43f" href="#" title="E2. Омыватели" onclick="if (function(){return Wicket.$(&#039;id43f&#039;) != null;}.bind(this)()) { Wicket.showIncrementally(&#039;ajax-indicator&#039;);}var wcall=wicketAjaxGet(&#039;view?18-2.IBehaviorListener.1-tree-tree-i-237-nodeLink&#039;,function() { ;Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}.bind(this),function() { ;Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}.bind(this), function() {if (!function() {return Wicket.$(&#039;id43f&#039;) != null;}.bind(this)()) {Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}return Wicket.$(&#039;id43f&#039;) != null;}.bind(this));return !wcall;"><span class=""></span><span>E2. Омыватели</span></a>
    </div></div><div id="id2f4_242" class="row"><div class="a_">
    <4> -4- </span><a onclick="return false"><noactiv></div><div id="id2f4_243" class="row"><div class="a_">
    <4> -4- </span><a onclick="return false"><noactiv></div><div id="id2f4_238" class="row"><div class="a_">
    <3> -3- <a id="id440" href="#" onclick="if (function(){return Wicket.$(&#039;id440&#039;) != null;}.bind(this)()) { Wicket.showIncrementally(&#039;ajax-indicator&#039;);}var wcall=wicketAjaxGet(&#039;view?18-2.IBehaviorListener.0-tree-tree-i-238-link&#039;,function() { ;Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}.bind(this),function() { ;Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}.bind(this), function() {if (!function() {return Wicket.$(&#039;id440&#039;) != null;}.bind(this)()) {Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}return Wicket.$(&#039;id440&#039;) != null;}.bind(this));return !wcall;"><span style="padding-right:5px" class="IsRoot ExpandOpen"><span class="Expand"></span></span></a>
    <a id="id441" href="#" title="E3. Стеклоочистители" onclick="if (function(){return Wicket.$(&#039;id441&#039;) != null;}.bind(this)()) { Wicket.showIncrementally(&#039;ajax-indicator&#039;);}var wcall=wicketAjaxGet(&#039;view?18-2.IBehaviorListener.1-tree-tree-i-238-nodeLink&#039;,function() { ;Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}.bind(this),function() { ;Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}.bind(this), function() {if (!function() {return Wicket.$(&#039;id441&#039;) != null;}.bind(this)()) {Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}return Wicket.$(&#039;id441&#039;) != null;}.bind(this));return !wcall;"><span class=""></span><span>E3. Стеклоочистители</span></a>
    </div></div><div id="id2f4_244" class="row"><div class="a_">
    <4> -4- </span><a onclick="return false"><noactiv></div><div id="id2f4_245" class="row-selected"><div class="a_">
    <4> -4- </span><a onclick="return false"><span style="padding-right:5px" class="ExpandLeaf ActiveLeaf"><span class="Expand"></span></span></a>
    <a id="id463" href="#" title="E310. Стеклоочиститель задний" onclick="if (function(){return Wicket.$(&#039;id463&#039;) != null;}.bind(this)()) { Wicket.showIncrementally(&#039;ajax-indicator&#039;);}var wcall=wicketAjaxGet(&#039;view?18-2.IBehaviorListener.1-tree-tree-i-245-nodeLink&#039;,function() { ;Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}.bind(this),function() { ;Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}.bind(this), function() {if (!function() {return Wicket.$(&#039;id463&#039;) != null;}.bind(this)()) {Wicket.hideIncrementally(&#039;ajax-indicator&#039;);}return Wicket.$(&#039;id463&#039;) != null;}.bind(this));return !wcall;"><span class=""></span><span>E310. Стеклоочиститель задний</span></a>
    </div></div>

    Должно заменится на
    <44444444>E310. Стеклоочиститель задний</span></a>
    Как запустить регулярку?
     
  2. dima911

    dima911 New Member Пользователи

    Регистрация:
    5 апр 2018
    Сообщения:
    89
    Город:
    Волгоград
    Существует ли иной способ как взять последнее вхождение на странице?
     
  3. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    2021-02-24_05-27-17.png

    Код:
    <span>{get}|<44444444>{get}
    </div></div>|
    [CLEARSPACES]
     
  4. dima911

    dima911 New Member Пользователи

    Регистрация:
    5 апр 2018
    Сообщения:
    89
    Город:
    Волгоград
    Нужно именно последнее вхождение в коде. А в этом примере берется первое
     
  5. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Да ладно.
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Именно крайнее и берется.
     

Поделиться этой страницей