WWWクリエイターズHTMLタグ辞典CSSリファレンスGitコマンド開発ブログ開発ブログGit、CSS、HTML、正規表現など、入門者がつまづきそうなポイントを中心に、役立ち情報発信します。Joe正規表現で、便利だが、分かりにくい「否定先読み」「肯定先読み」についてまとめました。記述訂正リクエストありがとうございました。lookahead)」とは、メインのマッチング処理とは独立したサブパターンのマッチングの吟味(テスト)の事です。「(?!」と「)」で、サブパターンを囲み、このような記述を用います。ここでいう「吟味(テスト)」とは、通常の「(」「)」で囲むようなサブパターンのマッチングと異なり、もしそのサブパターンのマッチが見かっても、マッチした文字列は「消費(Consume)」されず、同時に格納(Capture)されません。これはすなわち、下記を意味します。その後に実行されるマッチング処理の位置に影響しない。サブパターンにマッチした文字列を後方参照するできない。「処理位置の前方を吟味して、元の位置に戻ってきて処理を再開する。」これが先読みという由縁です。このようなテストを「言明(Assertion)」と言います。このような言明の表現は、否定/肯定の先読み/後読みとして、4つのパターンがあることでよく知られています。説明だけではだいたいよくわからないので、まずは、否定先読み表現の例を見てみましょう。対象の文字列はこちらを吟味します。基本的な「行頭」を表す位置指定子「^」の直後に、先読みの「元SMAP」が開始するかどうかを吟味します。元スマップで開始しない1行^(?!元スマップ).*$「.(ドット)」は改行以外の1文字、「*」は、直前のパターンの0回以上の繰り返しを表す量指定子、「$」は行末です。上記の対象文字列は、明らかに「元スマップ」で開始していますので、マッチはしません。比較のため「肯定先読み」で考えています。修正箇所のご連絡ありがとうございました。例2-1「香取」を含まない1行さて、前述の例は「行頭」という条件で吟味していましたが、1文全体を対象にしています。否定先読みを使って、「香取」を含まない1行をマッチングしようとしてみます。lookahead)はもうすこしシンプルです。「(?=」と「」)でパターンを囲みます。肯定の先読みは、その名の通り、カッコ内のサブパターンがマッチすればテストが成功します。この下記のようなシンプルなケースでは合肯定先読みを利用する必要はありません。元スマップで開始する1行^(?=元スマップ).*$ただし、このようなシンプルなケースでは合肯定先読みを利用する必要はありません。この例は、下記のシンプルな正規表現と(処理内容の違いはありますが)ほぼ同じ結果を得られます。元スマップで開始する1行^元スマップ.*$例1-2香取を含む1行(部分一致)サブパターンのテストが成功しても、マッチ文字列は「消費されない」性質を利用して、部分一致による文章全体をマッチングします。想像が付きそうですが、香取を含むには、肯定先読みで表現できます。香取を含む1行^(?=.*香取).*$以上です。正規表現について、基礎的な内容、メタ文字の一覧やサンプルを広くまとめています。正規表現とは?基本構文とメタ文字一覧(サンプル付)おすすめの記事Chromeのキャッシュを「完全に」削除する方法、まとめ。Chrome(グーグルクローム)に保存されたキャッシュを完全に削除する方法をまとめました。Spreadsheet)で改行の方法のご紹介です。リモートブランチの最新に合わせようとしたら・・、あれ?コンフリクト・・?なにこれ、うまくいかない12018-07-13GitCSSで上下・左右に中央寄せする方法、全部まとめHTMLとCSSで、テキストや画像を縦方向(上下方向)に中央寄せ(センタリング)したい事があります。取り消し方法や、やり直し操作に関する方法をまとめました。多くの入門者にとって、「正規表現」は、意味のわからない記号の羅列のように感じられ、とっつきにくさのある記法の一つです。正規表現の基本、行頭(行の先頭)と行末(行の末尾)を表す表現です。正規表現を使って「最短一致」でマッチングを取ります。正規表現での、数字に桁数に関する方法に関してです。これを応用して、数字の大きさの範囲を指定します。正規表現での、全角、半角のスペースの表現方法についてです。正規表現:文字列を「含まない」否定の表現まとめ2018-08-21正規表現とは?メタ文字とサンプル一覧2019-11-12正規表現:「行頭」「行末」の表現と、応用例2018-07-20正規表現:最短一致でマッチさせる表現2018-08-09正規表現:数字の桁数、数字の範囲を指定する表現2018-02-11正規表現:半角/全角スペースと、空白文字の表現2018-07-18おすすめの記事Chromeのキャッシュを「完全に」削除する方法、まとめ。隠しファイルを表示する方法。リセット方法2018-10-08「WWWクリエイターズ」は、より多くの人が開発とウェブを楽しむための目指したウェブサイトです。コマンドラインやgitなど、開発ビギナーのつまづきやすい部分を共有しています。})(jQuery);閉じる。