正規表現の否定 - 正規表現

正規表現や正規表現式内での否定の表現の記述の紹介です。

文字の否定:指定した文字以外の文字にマッチさせる場合

指定した文字以外の文字にマッチさせる場合には次の書式を利用します。
[^文字]

記述例

(a以外の文字)123 のパターン(k123 z123 など)にマッチさせる表現は以下になります。
[^a]123
詳しくはこちらの記事を参照してください。
なお、大かっこがない場合 ^(文字) の場合は、^は行頭を表す記号になります。

パターンの一部否定:パターンの一部にマッチしない場合にマッチさせる場合

否定先読み

パターンの一部にマッチしない場合にマッチさせる場合には否定先読みと呼ばれる次の書式を利用します。
(?!パターン)

記述例

abc123 以外のabc並びのパターン(abc999 abc456)にマッチさせる表現は以下になります。
abc(!123)

否定先読みの詳細はこちらの記事を参照してください。

否定後読み

パターンの一部にマッチしない場合にマッチさせる場合には否定後読みと呼ばれる次の書式を利用します。
(?<!パターン)

記述例

abc123 以外の123並びのパターン(bac123 xxz123 pppp123)にマッチさせる表現は以下になります。
(?<!abc)123

否定後読みの詳細はこちらの記事を参照してください。

行頭の否定

行の開始を否定する場合には、^[^..] (?!...) を組み合わせます。

(文字)で始まる文字列を否定できます。
^[^文字]

"k"以外で始まる文字列にマッチします。
^[^k].*


(文字列)で始まる文字列を否定できます。
^(?!文字列)

"abc"で始まる文字列以外の文字列にマッチします。
^(?!abc).*

行末の否定

行の終了を否定する場合には、$[^..] (?<!...) を組み合わせます。

(文字)で終わる文字列を否定できます。
[^文字]$

3以外で終わる文字列にマッチします。
.*[^3]$


(文字列)で終わる文字列を否定できます。
(?<!文字列)$

pen以外で終わる文字列にマッチします。
.*(?<!pen)$
著者
iPentecの企画・分析担当。口が悪いのでなるべく寡黙でありたいと思っている。が、ついついしゃべってしまい、毎回墓穴を掘っている。
掲載日: 2023-02-27
iPentec all rights reserverd.