我收到了一段包含以下内容的HTML代码:
<span rel="url">example.com</span>
<span rel="url">example.net.pl [SOMETHING]</span>
<span rel="url">[SOMETHING]imjustanexample.com</span> [..]
问题是,如果有办法从span
标签之间获取“url”字符串。例如。它应该得到以下内容:example.com
,example.net.pl
(没有[SOMETHING]
字符串)和imjustanexample.com
。
我想我必须为此目的使用正则表达式。
答案 0 :(得分:0)
在javascript中试用这个正则表达式,
/((http|https):\/\/(\w+:{0,1}\w*@)?(\S+)|)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
验证span标记中的文本
答案 1 :(得分:0)
我会这样(在正则表达式或只是PHP代码,你喜欢):
或低于标志<
(取其中最先出的那个)的所有内容。完成。如果正则表达式对您来说太复杂,您还可以使用字符串函数http://php.net/strings。
答案 2 :(得分:0)
此应该工作:
$str = '<span rel="url">http://google.ca</span>';
$match = preg_match('#<span(.*)?>((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|"|\'|:|\<|$|\.\s)</span>#i', $str, $matches);
if($match)
var_dump($matches);
else
echo 'Nope<br />';
的正则表达式
答案 3 :(得分:-1)
查看Simple HTML Dom Parser(here)。
有了它,您只需访问DOM树上的元素即可。
您的问题可以通过以下方式解决:
$html->find("span[rel=url]");
然后你可以简单地在所有元素和一些适合你需要的正则表达式上使用循环。