PHPの正規表現で質問です。


$a = [りんご][みかん][もも]...

【定義】
・$aは[と]で単語が囲まれた値が連続した文字列。
・[...]の繰り返し回数(文字列の長さ)は1回以上不定回数まで。

上記の様な値があり、これを

$a = <a href="りんご">りんご</a> <a href="みかん">みかん</a> <a href="もも">もも</a>...

に変更したい場合、preg_replace関数等を利用して一気に変換したい
のですが、どのような正規表現、記述方法が考えられるでしょうか?
※そもそもこの方法は不可能なのでしょうか?

正規表現が不得手なため、困っています。
宜しくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2009/05/05 18:04:32
  • 終了:2009/05/05 19:18:11

回答(2件)

id:tezcello No.1

tezcello回答回数460ベストアンサー獲得回数692009/05/05 18:16:50

ポイント35pt
$a = '[りんご][みかん][もも]';
var_dump(preg_replace('/\[(.+?)\]/', '<a href="$1">$1</a>', $a));

で結果は、

<a href="りんご">りんご</a><a href="みかん">みかん</a><a href="もも">もも</a>
id:hts1004

ありがとうございます。助かりました。

2009/05/05 19:17:43
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332009/05/05 18:49:53

ポイント35pt

可能です。以下のようになります。

コードは UTF-8 で書いてください。

<?php
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');

$a = "[りんご][みかん][もも]";
$a = preg_replace("/\[([^\]]*)\]/u", "<a href=\"$1\">$1</a>", $a);

echo $a;
?>

参考サイト

id:hts1004

ありがとうございます。助かりました。

2009/05/05 19:17:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません