[PHP-users 16568]Re: 正規表現で空白行削除

Osamu Shigematsu m5issige @ mr.hitachi-medical.co.jp
2003年 7月 9日 (水) 08:44:56 JST


重松です。こんにちは。

> アンケートのサンプル----------------
> ●使用用途・目的●
>   製品の維持
> 
> 
> 
> 
>   製品の品質管理
> アンケートのサンプル---------終わり

ということなので、整理すると、

●タイトル●\n
回答\n
\n
\n
\n
\n

となっている、ということですよね。
(改行はわかりやすいように \n で明示しました)

だとすると、正規表現的に日本語で書くと、

	●
	空ではない 1 文字以上
	●
	\n
	空かもしれない \n までの文字列
	\nが 4 つ

となりますね。

つまり、

	●
	.+
	●
	\n
	[^\n]*
	\n{4}

ですね。

このうち必要なのは、.+ と [^\n]* の部分なのだから、
() で括って、ereg でマッチしたら取り出すとよいでしょう。

けど、私ならば、そんな面倒なことはしないですけどね。

	$result = array();
	$items = explode("\n\n\n\n", $enq);
	foreach ($items as $item) {
		list($key, $val) = explode("\n", $item);
		$result[$key] = $val;
	}
	print_r($result);

あら、簡単。

-- 
Osamu Shigematsu <m5issige @ mr.hitachi-medical.co.jp>



PHP-users メーリングリストの案内