如果此脚本检测到然后显示所有#标签,我该如何更改它以使它们都成为超链接?基本上将<a href="#">
置于其前面并</a>
置于
$str = <<<STR
this is a string
with a #tag and
another #hello one
STR;
$matches = array();
if (preg_match_all('/#([^\s]+)/', $str, $matches)) {
var_dump($matches[1]);
}
答案 0 :(得分:2)
听起来你想要这样做:
$str = <<<STR
this is a string
with a #tag and
another #hello one
STR;
$matches = array();
if (preg_match_all('/#([^\s]+)/', $str, $matches)) {
// Get rid of the full matches
array_shift($matches);
// Now get the first array element which are the actual captured matches
list($matches) = $matches;
foreach($matches as $match) {
echo "<a href='#'>{$match}</a>\n";
}
}
输出:
$ php test.php
<a href='#'>tag</a>
<a href='#'>hello</a>
答案 1 :(得分:1)
您可以使用反向引用,preg_replace
执行此操作。
echo preg_replace('/#([^\s]+)/', '<a href="#">$1</a>', $str);
输出:
this is a string
with a <a href="#">tag</a> and
another <a href="#">hello</a> one
如果您希望#
成为链接的一部分,只需将正则表达式更改为/(#[^\s]+)/
。
答案 2 :(得分:-3)
sed 's/#/URL/' myhtmlfile.html
其中,URL是您要替换#with。
的网址