====== PHP preg_match() でハマり道 ====== 実際にはそんなにハマってはいないのですが。。。 * パス名内の文字を抽出する場合は、/ を | などに書き換える。 * パターンにマッチした文字を抽出する場合、() だけでなく、その中に [] を入れる。 ということを覚えておくと、書くときに楽になれそう。 $users = []; foreach ($lines as $line) { if (preg_match('|/home/([^\/]+)/|', $line, $matches)) { if (!in_array($matches[1], $users)) $users[] = $matches[1]; } }