匹配另一个单词之前的单词的最后一次出现

时间:2016-11-11 17:21:30

标签: regex negative-lookahead

我希望在以下html代码段中匹配jdbc / myds之前的最后一个refId,所以我想回来' DataSource_1478537797505'

我试过

(?s)refId=(.*?)&(?!refId).*jdbc\/myds

与单线模式一样。 匹配refId =并将所有内容分组到下一个&同时在遇到myds之前对其他refId实例负面展望

<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

由于 标记

1 个答案:

答案 0 :(得分:1)

使用 xhtml解析器比使用正则表达式更有用,它通常是正确的工具。

无论如何,如果您仍然想使用正则表达式,那么您可以使用这样的正则表达式(不需要使用外观):

synchronizeOnSession

<强> Working demo