devops:php:preg_match

PHP preg_match() でハマり道

実際にはそんなにハマってはいないのですが。。。

  • パス名内の文字を抽出する場合は、/ を | などに書き換える。
  • パターンにマッチした文字を抽出する場合、() だけでなく、その中に [] を入れる。

ということを覚えておくと、書くときに楽になれそう。

$users = [];
foreach ($lines as $line) {
    if (preg_match('|/home/([^\/]+)/|', $line, $matches)) {
        if (!in_array($matches[1], $users)) $users[] = $matches[1];
    }
}

  • devops/php/preg_match.txt
  • 最終更新: 2022/02/25 19:27
  • by admin