PHP正则表达式:获取带有问号的所有URL
我有一个正则表达式:PHP正则表达式:获取带有问号的所有URL,php,regex,html-parsing,Php,Regex,Html Parsing,我有一个正则表达式: preg\u match\u all(“/ 和preg\u match\u all将返回: http://site.com/index.php?id=1 http://site.com/calc/index.php?id=1&scheme=Venus不要试图在一个正则表达式中实现所有操作。使用现有方法,然后分别检查返回的URL,查看其中是否有问号 也就是说,不要使用正则表达式来解析HTML。你无法用正则表达式可靠地解析HTML,你将面临悲伤和挫折。一旦HTML改变了你的预期
preg\u match\u all(“/
和preg\u match\u all
将返回:
http://site.com/index.php?id=1
http://site.com/calc/index.php?id=1&scheme=Venus
不要试图在一个正则表达式中实现所有操作。使用现有方法,然后分别检查返回的URL,查看其中是否有问号
也就是说,不要使用正则表达式来解析HTML。你无法用正则表达式可靠地解析HTML,你将面临悲伤和挫折。一旦HTML改变了你的预期,你的代码将被破坏。有关如何用已经使用的PHP模块正确解析HTML的示例,请参阅已经编写、测试和调试。安迪·莱斯特给了你正确的答案 这是你的正则表达式:
<a\s.*?href\s*=\s*['|\"](.*?\?.*?)(?=#|\"|')
preg\u match\u all(“@可以在两行中使用,但可以在一行中使用。谢谢,我会检查它。
preg_match_all("@<a\s*href\s*=[\'\"]([^\'\"]+\?[^\'\"]+)[\'\"]@si", $data, $matches);