Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex:使用替代方案_Regex - Fatal编程技术网

Regex:使用替代方案

Regex:使用替代方案,regex,Regex,假设我想从HTML中获取所有的href值。 我可以在内容上运行这样的正则表达式: a[\s]+href[\s]*=("|')(.)+("|') 哪个匹配 a href="something" 或 这是可以的;但是|“我捕获了太多的团体,这是我不想要的 如何在不捕获组的情况下在regex中使用替代方案 这个问题也可以这样表述:我如何界定匹配的备选方案?开始和停止。我用括号,因为这是所有的工作 我知道给定的正则表达式不是完美的,也不是很好,我只是想用两个值来交替计算,因为我不太清楚 感谢您提供

假设我想从HTML中获取所有的href值。 我可以在内容上运行这样的正则表达式:

a[\s]+href[\s]*=("|')(.)+("|')
哪个匹配

a href="something" 

这是可以的;但是|“我捕获了太多的团体,这是我不想要的

如何在不捕获组的情况下在regex中使用替代方案

这个问题也可以这样表述:我如何界定匹配的备选方案?开始和停止。我用括号,因为这是所有的工作

我知道给定的正则表达式不是完美的,也不是很好,我只是想用两个值来交替计算,因为我不太清楚


感谢您提供的任何提示使用非捕获组,如:?:|',关键部分是开头的?:。它们作为一个组,但不会导致单独的匹配。

注意,这也会捕获href=bla'使用反向引用来避免它。谢谢,我知道,在这种情况下也不介意。如果您想提取html项,您应该尝试使用html解析器,如DOM或SAX;DOM是最简单的。使用它,您将能够表达诸如标签中的所有href元素之类的查询。这正是我想要的!从现在起,我可以搜索非捕获组,一切都会好的-谢谢!
a href = 'something' // quotes, spaces ...