正则表达链接到页面锚点

时间:2011-06-27 10:36:45

标签: php regex preg-replace

我想使用正则表达式将链接转换为页面锚点。我对正则表达式全新,我尝试过学习。

我使用了一个php字符串替换为带有#的根URL,但是需要使用preg_replace来更改/到 - 而不是当/是html标记的一部分时,例如<//>

$string = '<ul>
<li><a href="http://www.somedomain.com/something/somethingelse">Hello World</a></li>
<li><a href="http://www.somedomain.com/something/somethingelse">Hello World</a></li>
</ul>';

// Replace root url with #
$string = str_replace('http://www.somedomain.com/', '#' , $string);

// This replaces the / with hyphens, but I need it to not do this if is preceeded or followed by < or >
$string = preg_replace("/\//", "-", $string);
echo $string;

1 个答案:

答案 0 :(得分:1)

种类:

preg_replace('/([^<]|^)\/([^>]|$)/', '$1-$2', $string);

但是整个任务看起来不像解决原始任务的可靠方法。