2011-06-27 11 views
0

正規表現を使用して、ページアンカーへのリンクを変換したいと考えています。私は正規表現に全く新しいです、私は学習を試みました。Regexページアンカーへのリンク

私は、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

の種類:

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

しかし、全体のタスクは元のタスクを解決するための信頼性の高い方法のようには見えません。

+0

返信いただきありがとうございます。私は文字列を文字列から置き換えたいですが、それがない場合は入れません Jason

+0

申し訳ありませんが、一連の間違いがありました。なぜ私はそれを書いたのかわからない - 多分私はあまりにも疲れていた。今は固定されテストされています。 –

+1

また、正規表現は、文字列全体の端にスラッシュを必要としない場合、簡略化することができます: '/([^ <])\/([^>])/ s' –

関連する問題