大文字小文字の間違ったものを探す

back
例えば qmail になっていない qmail (Qmail とか QMAIL とか…)を見つけたい

/qmail/ だと、逆
/qmail/ の否定や /[^(qmail)]/ だと、全く関係ないものもマッチする

なので
/(?!qmail)(?i:qmail)/ あたりでチェック

(?!pattern) は否定先読みで、以降にpatternが無い位置にマッチ
(?mode:pattern) は局所オプションで、カッコ内だけ mode(大文字小文字無視: i) でpatternにマッチ

よって「以降に "qmail(小文字)" がない位置から、大文字小文字無視の "qmail"」にマッチする。
否定先読みによって小文字のみにはマッチせず、大文字小文字の混ざったものだけにマッチする。

まぁ、正規表現使わずに文字列比較演算子で処理するか、2回に分けてもいいけど。

not /qmail/ and /qmail/i

back