PHP::正規表現::試してみる

これでいいんだろうか。

<?php
$str = "width=\"200\" height=\"100\" cellspacing=\"5\" cellpadding=\"5\" border=\"5\" summary=\"てすと\"";
$reg = "[ ]?([a-z]+)\=\"([0-9一-龠ぁ-んァ-ヴー\%]+)\"";
$i = 0;
while ( preg_match("/$reg/", $str, $m) ) {
	$str = preg_replace("/$reg/", "<p>" . $m[$i + 1]. " | " . $m[$i + 2] . "</p>\n", $str, 1);
}
echo $str;
?>

こんなん吐き出した

<p>width | 200</p>
<p>height | 100</p>
<p>cellspacing | 5</p>
<p>cellpadding | 5</p>
<p>border | 5</p>
<p>summary | てすと</p>

一度に置換するのではなく、逐次的に置換する方法を使った。

本当は一度に置換したかったが、それだと正規表現がどうなるのか分からんので、仕方なく逐次となった。

実際に試したわけじゃないので分からないが

置換した文字列が正規表現にマッチするようなものにしてしまった場合無限ループしてしまうかもしれない。

まぁ、とりあえず置換はできた・・・と思う。

明日辺り試してみようと思う。