正则表达式仅在符合条件的情况下捕获两个单词之间的所有内容

时间:2019-04-09 12:44:41

标签: regex

我正在处理以下字符串:

d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{}; source

与重新放置源代码相同(这是捕获源代码的一个好例子):

d.innerHTML= lala; possibly other stuff; source "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{}; 

我正在尝试捕获innerHTML在其值中包含字符串“ source”的任何情况。我尝试使用此正则表达式来匹配两个字符串之间的任何内容:

innerHTML=(.*?)source

但是它失败了,因为它将继续在整个页面中搜索“ source”关键字(并且将匹配途中的所有内容)。所以我尝试设置一个代表函数结束的限制,例如:

innerHTML=(.*?)(source|[})\]\n])

但这也失败了,因为它仍然可以匹配我设置的所有内容(请记住-我只想在源实际存在时进行匹配)。

我不知道如何执行此操作,而无论在innerHTML值之外提到“ source”的任何地方都不会产生误报。请帮忙吗?

0 个答案:

没有答案