モジュール 6 · レッスン 2 / 4コース内の 22/32~10 min
モジュールのレッスン (2/4)
否定先読み: `(?!...)`
ネガティブ先読み (?!...) は、ポジティブ先読みの暗い姉妹です。
指定されたパターンが現在の位置に従わないことが必要です。それは
まだ ゼロ幅: 文字は消費されません。
Code
Pattern: \d+(?! euro)
Sample: Prezzo 100 euro, sconto 25 euro, totale 75 dollari.
^^75 のみが一致します。これは、後に続かない唯一の数字のシーケンスであるためです。
euro。数字 100 および 25 の後に euro が続き、
除外されます。
典型的な否定的な先読みパターン
^(?!.*errore).*$-- 「errore」という単語が含まれない行。\b(?!the\b)\w+\b--theではない単語。(?!\s)-- 現在の位置は空白ではありません (「トリム」として役立ちます)。
Code
Pattern: ^(?!.*\.bak$).*$
Sample (multiline with flag m):
foto.jpg
backup.bak
documento.txt
Match: foto.jpg, documento.txt (excludes backup.bak)否定先読みによる高度な除外
否定先読み (?!...) は、除外ロジック (パスワードに辞書の単語が含まれていないこと、または識別子が class や function などの予約キーワードではないことの検証など) を実装するために不可欠です。
試してみてください
運動#regex.m6.l2.e1
試行回数: 0読み込み中…
「ユーロ」が続かないすべての数字を検索します (したがって、ユーロ価格は除外されます)。
エディターを読み込み中…
ヒントを表示
「従ってはいけない」と言うには (?! ...) を使用します。 ` euro` シーケンスはその後に現れてはなりません。
3 回の試行後に解決策が利用可能になります
復習演習
運動#regex.m6.l2.e2
試行回数: 0読み込み中…
「the」ではない少なくとも 3 文字の単語をすべて検索します (大文字と小文字は区別されません)。
エディターを読み込み中…
ヒントを表示
\\b の直後に、単語 the のみを除外する否定先読み (?!the\\b) を開きます。
3 回の試行後に解決策が利用可能になります
追加の課題
運動#regex.m6.l2.e3
試行回数: 0読み込み中…
Find all words consisting of letters that do not contain the letter `x` at any position (e.g. match `test`, `game` but not `extra`, `box`).
エディターを読み込み中…
ヒントを表示
単語境界 \\b の直後に否定先読み (?!\\w*x) を使用します。
3 回の試行後に解決策が利用可能になります