ビジネス ソフト・ツール

正規表現の最長一致と最短一致。サクラエディタでも使えます。

投稿日:

サクラエディタをはじめ、多くのテキストエディタやプログラミング言語で使用することができる正規表現。

使いこなすととても便利ですが、覚えることが多くて、最初のうちは大変かと思います。

特に困るのが、「最長一致」ですね。これは、正規表現は「左側から、できるだけ長くなるように探す」という基本的なルールのことです。

最長一致/最短一致とは

以下のページでも紹介したこのような記述を例に紹介します。

<tag1><tag2><tag3><tag4>山田 太郎</tag4></tag3></tag2></tag1>
<tag5><tag6><tag7><tag8>鈴木 一郎</tag8></tag7></tag6></tag5>
<tag9><tag10><tag11><tag12>田中 花子</tag12></tag11></tag10></tag9>

↑これの人名だけ抜き出したい場合、「<.+>」という正規表現の書き方が浮かびますが、これはNGです。

※”.”(ドット)は、改行文字以外の任意の1文字、”+”は、前の1回以上の繰り返し

 

なぜなら、ドットには”<“や”>”など、括弧の文字も含まれてしまうからです。

つまり、以下のピンクのラインが”.+”に当てはまる箇所なので、この正規表現の書き方ではNGです。

 

このように、正規表現では、「特に指定がない限り」できる限り長く当てはまるものを探します。

これを「最長一致」と言います。

 

逆に、「できるだけ短く見る」ようにすることもできます。これを「最短一致」と言います。

 

イメージとしては、以下のように探します。

最長一致:文の左側から探し始め、目的のものが見つかっても、行けるところまで進む
最短一致:文の左側から探し始め、目的のものが見つかったら、そこでおしまい

 

ちなみに英語では、
最短一致=greedy matching(強欲マッチング)
最短一致=non-greedy matching(強欲でないマッチング)
もしくは lazy matching(怠惰なマッチング) と言います。

「強欲」と対になる言葉が、「怠惰」って…
はりきってがんばったら「強欲だ」と言われ、効率よくやったら「怠惰だ」と言われ、じゃあどうしろと…

 

最短一致のための書き方

最短一致を実現させる魔法の文字が、”?”です。

 

?といえば、「0回か1回の繰り返し」と覚えている方も多いと思いますが、ほかにも意味があります。

 

“*”(0回以上の繰り返し)や”+”(1回以上の繰り返し)の後ろにつけると、最短一致をさせることができます。

 

今回の場合は、「<.+?>」と書くと、左側から見て最初の”>”がゴールになります。

※黄色い箇所が連続しているように見えますが、”>”と”<“が連続しているためです。

 

 

正規表現は覚えることがたくさんありますが、その分、使いこなせるようになると便利です。

ぜひ、「最短一致」についても、使いこなしてみてください。



Facebook いいね!お願いします



気に入っていただけたら、フォローをお願いします

-ビジネス, ソフト・ツール
-,

執筆者:

関連記事

わかりやすい文章の書き方 メールやブログ記事の構成にはテンプレートを用意。

この記事は、「分かりやすい文章の書き方」を説明したものです。以下の方を対象にしています。 仕事でメールや資料を作成する人 僕のようにブログ記事を作成している人   もくじ1 形に当てはめてし …

仕事ができるビジネスマンは絶対行っている、目標設定の重要性。

みなさんは、目標を持って仕事をしていますか? 大きな目標を持って仕事をしている人、生活のために仕事をしているだけの人、いろんな人がいるかと思いますが、もしあなたが大きなことを達成したいのであれば、正確 …

(WordPress)Twenty Seventeenでサムネイル画像をタイトルの下に移動させる方法

このブログは、Wordpressを使用して作成されていますが、これと同様に、WebサイトをWordpressで作成している個人や企業は多いと思います。 複数のテーマが用意されており、カスタマイズも感覚 …

事務職として働くならExcelは絶対覚えておいたほうがいい理由 必要なExcelレベルも解説

女性にとって常に人気な事務職ですが、ひとくちに「事務職」といっても、行うことはさまざまです。 OA事務や総務といったものから、営業事務、秘書など専門的なスキルが必要なものまで、いろいろな種類があります …

no image

サクラエディタの正規表現の使い方。たくさんの改行や括弧の中身を消したり、日付の形式を変更したりできます。

本日は、愛用者も多い(?)サクラエディタの使い方をご紹介したいと思います。 みなさんは、文章を書くときどのテキストエディタを使っていますか? Windows標準のメモ帳でもいいですが、テキストエディタ …

Twitterはこちら