正規表現の greedy と non-greedy — なぜ同じパターンで結果が変わるのか
正規表現の * や + は「直前の文字が何回続いてもいい」という意味だが、実際にマッチする範囲は「できるだけ長く」なのか「できるだけ短く」なのかで挙動が変わる。これが greedy(貪欲)と non-greedy(非貪欲 …
WordPress の保守・運用に関する技術情報を発信しています。
正規表現の * や + は「直前の文字が何回続いてもいい」という意味だが、実際にマッチする範囲は「できるだけ長く」なのか「できるだけ短く」なのかで挙動が変わる。これが greedy(貪欲)と non-greedy(非貪欲 …
アプリのログを見ていると、同じ「記録」なのに DEBUG INFO WARNING ERROR という別々のラベルが付いていることに気づく。なぜ単純に「起きたことを全部書く」のではなく、わざわざ段階を分けているのか。今回 …
SSH の秘密鍵を扱っていると、「600 にしてください」という指示によく出会います。逆に設定ファイルには 644、実行可能なスクリプトには 755 が使われる場面もあります。これらの3桁の数字は何を表していて、なぜファ …
SSHでサーバーに接続する際、「パスワードより鍵認証のほうが安全」という助言はよく耳にします。では、鍵認証は具体的に何を証明していて、パスワード認証と比べて何が違うのでしょうか。本稿では、両者が「本人であること」をどう証 …
保守ツールのテストスイートを見ていると、ひとつの疑問にぶつかることがあります。すでにその関数のテストがあるのに、なぜ別のファイルにもう一本テストを追加するのか。同じ機能を検証しているように見えて、実は目的がまったく違う2 …
デスクトップアプリを終了ボタンで閉じたはずなのに、タスクマネージャーやアクティビティモニタを見るとプロセスが残っている——という状態に遭遇したことがある人は多いはずだ。この記事では、起動時に「前回終わり損ねたプロセス」を …
ソフトウェアのバージョン番号を見ると、多くの場合「1.6.11」のように数字が3つ並んでいる。これは思いつきの命名ではなく、セマンティックバージョニング(Semantic Versioning、通称SemVer)という広 …
デスクトップアプリでサーバーのSSHパスワードやAPIキーを扱う場合、毎回入力させるのはユーザー体験として現実的でない。かといって設定ファイルに平文で保存すると、そのファイルがバックアップに含まれたり、別のツールに共有さ …
サーバーへのファイル転送で rsync -avz –delete という組み合わせをそのままコピー&ペーストして使っている人は多い。動くには動くので深く考えずに使い続けがちだが、それぞれの文字が何を指示しているかを分解 …
バックアップを取る際によく引き合いに出される経験則に「3-2-1ルール」がある。「3つのコピー・2種類の異なる媒体・1つは別の場所」という3つの数字の並びだが、それぞれの数字が何を守るためのものかを分解して理解している人 …