使用正则表达式从 link 中提取单引号和双引号网址
Extract single and double quotes urls from link using regex
我需要使用正则表达式为 PHP 脚本提取 Twitter ID。只要 URL 用双引号编码,它就很好用...
<a href='http://www.twitter.com/singlequotes'>Twitter Single Quotes</a>
<a href="http://www.twitter.com/doublequotes">Twitter Double Quotes</a>
// regular expression
/<a [^>]*\bhref\s*=\s*"\K[^"]*twitter.com[^"]*/
我试过使用 "|'
、["']
和许多其他东西,但都不起作用。如果你能帮我解决这个问题,我将不胜感激。谢谢!
这已经是您所能达到的最快速度了。不需要捕获组。
href=['"]\K[^'"]+
在 href=
之后查找单引号或双引号,然后匹配不是单引号或双引号的所有内容。就是这么简单。
p.s。如果您担心 =
附近的空格,请使用:
href *= *['"]\K[^'"]+
PHP 实施(PHP Demo):
$in='<a href=\'http://www.twitter.com/singlequotes\'>Twitter Single Quotes</a>
<a href="http://www.facebook.com/doublequotes">Twitter Double Quotes</a>
<a href=\'http://twitter.com/singlequotes\'>Twitter Single Quotes</a>
<a href="https://www.facebook.com/doublequotes">Twitter Double Quotes</a>';
$companies=['twitter','facebook'];
$out=preg_match_all('/href *= *[\'"]\Khttps?:\/\/(?:www\.)?(?:'.implode('|',$companies).')\.com[^\'"]+/',$in,$out)?$out[0]:[];
var_export($out);
我需要使用正则表达式为 PHP 脚本提取 Twitter ID。只要 URL 用双引号编码,它就很好用...
<a href='http://www.twitter.com/singlequotes'>Twitter Single Quotes</a>
<a href="http://www.twitter.com/doublequotes">Twitter Double Quotes</a>
// regular expression
/<a [^>]*\bhref\s*=\s*"\K[^"]*twitter.com[^"]*/
我试过使用 "|'
、["']
和许多其他东西,但都不起作用。如果你能帮我解决这个问题,我将不胜感激。谢谢!
这已经是您所能达到的最快速度了。不需要捕获组。
href=['"]\K[^'"]+
在 href=
之后查找单引号或双引号,然后匹配不是单引号或双引号的所有内容。就是这么简单。
p.s。如果您担心 =
附近的空格,请使用:
href *= *['"]\K[^'"]+
PHP 实施(PHP Demo):
$in='<a href=\'http://www.twitter.com/singlequotes\'>Twitter Single Quotes</a>
<a href="http://www.facebook.com/doublequotes">Twitter Double Quotes</a>
<a href=\'http://twitter.com/singlequotes\'>Twitter Single Quotes</a>
<a href="https://www.facebook.com/doublequotes">Twitter Double Quotes</a>';
$companies=['twitter','facebook'];
$out=preg_match_all('/href *= *[\'"]\Khttps?:\/\/(?:www\.)?(?:'.implode('|',$companies).')\.com[^\'"]+/',$in,$out)?$out[0]:[];
var_export($out);