Regex 如果存在另一个字符串,则正则表达式不返回字符串

Regex 如果存在另一个字符串,则正则表达式不返回字符串,regex,Regex,给定此正则表达式查询字符串: (?:<.*>)?(?:.*)?("|quot;)(.*)(\1)(?:.*)?(?:<.*>)?(?:http(s)?:\/\/)?(?:w{3})?plainview.io\/archives\/(\w+)(?:.*)?(?:<.*>)? 为什么当我添加更多文本时(实际上是在我需要的字符串之后),它会选择后面的文本?您应该了解正则表达式如何在内部运行 这里的问题主要是(过于)复杂的正则表达式和贪婪: 你叫什么函数?似乎调用了

给定此正则表达式查询字符串:

(?:<.*>)?(?:.*)?("|quot;)(.*)(\1)(?:.*)?(?:<.*>)?(?:http(s)?:\/\/)?(?:w{3})?plainview.io\/archives\/(\w+)(?:.*)?(?:<.*>)?

为什么当我添加更多文本时(实际上是在我需要的字符串之后),它会选择后面的文本?

您应该了解正则表达式如何在内部运行

这里的问题主要是(过于)复杂的正则表达式和贪婪:


你叫什么函数?似乎调用了与整个字符串匹配的内容,并返回最后看到的匹配。很高兴知道您使用的是哪种语言我正在测试这一点我只是在查看我的结果的捕获组有没有办法让它更简单?我在Chrome扩展中使用它,它导致我的所有页面冻结。我打算使用的用例是搜索整个HTML文档以查找任何匹配的内容:quoted\U text plainview\U url甚至比
“(.*?”
”更简单?我想不会。任何可以调整正则表达式性能的东西都会使它变得更复杂
<p>This is some text before, &quot;minister, a loyal party member with black rimmed glasses told us. He&#039;s the best man for the job.&quot; www.plainview.io/archives/SysteBvsl</a> and some text after</p>
\\/si\\/ajax\\/l\\/render_linkshim_log\\/?u=http\\u00253A\\u00252F\\u00252Fwww.plainview.io\\u00252Farchives\\u00252FSysteBvsl&amp;h=ATPBq9DrC_xIokWhmxk7f3nyKGofYnM9zGt3mF-7bfMNNupsX0WSR4TdE6VmX6W9gd_1Rnby1nXfIfq3MzgOS2PKryxKu9z3yci0ZvomiLHvYbVSfuwg29Y1Z_R1LEKRDXO3sAOZ2dsMgQ&amp;enc=AZMnRgfaZaV-J1wtvqulToF-RxOlkhgY6kzmkLuXSv26a0waxI3nHsI1rXkl-ILjrXkcnwajsVFizefc27K5A_WlqpJrNQLKWSTnDSwIGHGHYvWDp1CWeBP8vbzcQZcnJHA-ka3LvpJIYIO7_YwPaEpKsT0I0nNewd0aHZYbPtHghob7_7a_fubIkIy5g3R7ExA&amp;d&
(?:<.*>)?(?:.*?)?("|quot;)(.*)(\1)(?:.*)?(?:<.*>)?(?:http(s)?:\/\/)?(?:w{3})?plainview.io\/archives\/(\w+)(?:.*)?(?:<.*>)?
&quot;(.*?)&quot;