Я ищу, чтобы соответствовать последним RefID перед тем JDBC/myds в следующих фрагмент кода HTML, так что я бы искать, чтобы вернуться «DataSource_1478537797505»Match последнее вхождение слова перед другим словом
Я попытался
(?s)refId=(.*?)&(?!refId).*jdbc\/myds
как в режиме одиночной линии. Соответствует RefID = и группу все до следующего & в то время как отрицательно смотрит вперед для других случаев RefID перед тем, сталкивающимся myds
<div id="nameCollectionDiv9">
<A HREF="dataSourceCollection.do?csrfid=644853468&EditAction=true&refId=DataSource_1436886953637&contextId=cells%3AWASUAT1_Cell&resourceUri=resources.xml&perspective=tab.configuration">
<div id="jndiNameCollectionDiv9">
jdbc/old_workflow_XA
<A HREF="dataSourceCollection.do?csrfid=644853468&EditAction=true&refId=DataSource_1436886597868&contextId=cells%3AWASUAT1_Cell&resourceUri=resources.xml&perspective=tab.configuration">
<div id="jndiNameCollectionDiv10">
jdbc/old_workflow
<div id="nameCollectionDiv11">
<A HREF="dataSourceCollection.do?csrfid=644853468&EditAction=true&refId=DataSource_1478537797505&contextId=cells%3AWASUAT1_Cell&resourceUri=resources.xml&perspective=tab.configuration">
jdbc/myds
Благодарность Марка.
Если вы хотите сохранить его аналогично тому, как вы его получили, попробуйте: refId = (. *?) (& (?! refId) | [^ &]) * jdbc \/myds'. Я бы опубликовал это как ответ, но regex101, похоже, не работает для меня, и я чувствую, что должен дать рабочий пример – Addison
Спасибо за попытку Addison, я попробовал это, но безрезультатно. Каким-то образом он по-прежнему соответствует первому redId прямо через секунду до jdbc/myds. В этот момент я сбитый с толку, я не понимаю, почему нет [^ [refId]] *, который позволяет вам сопоставлять независимо от того, не является ли строка refId, но только [^ ...] может отрицательно совпадать с символами групп, такими как все буквы в 'refId' –