匹配一个词在另一个词之前的最后一次出现
Match last occurrence of a word before another word
我希望匹配以下 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
谢谢
马克.
您应该会发现使用 xhtml 解析器 比使用正则表达式更有用,它通常是正确的工具。
无论如何,如果你仍然想使用正则表达式,那么你可以使用这样的正则表达式(不需要使用环视):
(?s).*refId=(.*?)&
我希望匹配以下 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
谢谢 马克.
您应该会发现使用 xhtml 解析器 比使用正则表达式更有用,它通常是正确的工具。
无论如何,如果你仍然想使用正则表达式,那么你可以使用这样的正则表达式(不需要使用环视):
(?s).*refId=(.*?)&