正規表現の否定の記述「否定戻り読み」具体的な使い方は!?

記事更新日: 2021/09/27

ライター: なかしー

なかしー

正規表現の否定の記述でよく見られる

「否定戻り読み」ってどういうこと?

正規表現って確かに難しいですけど、使えるようになるとスプレッドシートやプログラミングで非常に活用できます。

実際に僕自身スプレッドシートの作業が1時間の作業を10分ぐらいに削減したこともあります。

なかしー

事務作業が多いなら、正規表現の否定を覚えることをお勧めします。

難しいとは思いますが、活用できる機会が多いため覚えて損はないです。

なかしー

「否定戻り読み」ができるようになるとさらに

否定表現だけの場合と比べてもさらに容易に探索ができるようになりますよ!

この記事を書いた人
なかしー
元システムエンジニアのWEBマーケター。IT企業に勤めており、日々エクセルと格闘している。
社内ではスプレッドシートやエクセルの管理周りを任せられており、自称エクセルマスター。
正規表現の使い方を知って、1時間の作業を10分ぐらいまで圧縮した経験アリ。

「否定戻り読み」とは!?

「(),?<!」を使い、否定戻り読みを実現します。

文字を探索し、指定した文字列と一致しない場合に真を返します。

 

否定後読みは、「直前に特定の文字列が無いパターン」とパターンマッチします。

書き方の基本形は、「(?<!fuga)hoge」で、この場合は「直前にfugaがこないhoge」という意味になります。

例えば、「(?<!Longleaf)pine」であれば、「greenpine」「yellowpine」がマッチしますが、「Longleafpine」はマッチしない(=対象外)ですし、「(?<!サーチ)バンク」なら、「ソフトバンク」「JAバンク」がマッチしますが、「サーチバンク」はマッチしません。

「否定戻り読み」の活用事例

例えば、スプレッドシートで「(?<!サーチバンク)8」を対象とする場合は「後方の文字列内に"8"という文言があったら消す。その際、"サーチバンク"を文字列に含まないもの」を真として返します。

 

文章だけではわかりにくいので、先程のように具体的にスプレッドシートで事例を記載しております。

 

1.正規表現「(?<!サーチバンク)8」を使い対象の文字列を探索

2.すべて置換で、対象の文字列を削除完了。

「後方の文字列内に"8"という文言があったら消す。その際、"サーチバンク"を文字列に含まないもの」つまり、"サチバ8"の"8"が削除されます。注意点としては後方の文字列が可変長の場合は、こちらを使用することができないです。

まとめ

正規表現は初心者からすると、確かにすごく難しく感じるかもしれません。

ただ、正規表現を極めることで"スプレッドシート"や"プログラミング"でかなり活用できます。

 

実際に業務が1時間から10分ぐらいまで圧縮することができたので、僕自身も覚えてよかったと思います。

一回じゃ覚えにくいとは思いますが、何度も見て活用していきましょう!!

 

↓応用編も下記に記載していますので参考になれば幸いです。

この記事を書いたライター

なかしー

プロフィール

元システムエンジニア、都内の上場企業のグループ会社にてWEBマーケの仕事に携わっています。

浪人1回・留年1回・新卒1年目で会社を辞めるが、前職の求人広告代理店にてWEB集客系の仕事に従事し、大手企業案件を複数担当する。

IT業界や求人業界の役立つ情報が提供できればと考えています。

 

経歴

メーカーのシステムエンジニア→求人広告のWEBマーケター→IT企業のWEBマーケター

この記事に関連するラベル

ページトップへ