メインコンテンツにスキップ
モジュール 5 · レッスン 3 / 4コース内の 19/32~8 min
モジュールのレッスン (3/4)

否定: `[^...]`

キャレット ^ を角かっこ内の 最初 文字として配置します クラスを 反転します。リストされている文字を除く任意の文字と一致します。

Code
Pattern: [^aeiou]
Sample:  ciao mondo
          ^   ^^  ^

[^aeiou] は、子音、スペース、句読点、数字\u2026 すべてに一致します は母音ではありません。

代表的な例

  • [^\s] -- 任意の「非スペース」文字 (\S と同等)。
  • [^0-9] -- 数字ではないもの (\D と同等)。
  • [^"]+ -- 「二重引用符ではない一連の文字」 (次の場合に役立ちます) 引用符の間の内容を抽出します)。
Code
Pattern: "([^"]+)"
Sample:  Il libro "Il nome della rosa" e' famoso.

グループ ([^"]+) は引用符の間のすべてをキャプチャします 停止中 次の " の前: これは、 貪欲対怠惰の問題。

否定および代替ワイルドカード

否定されたクラス [^...] は、リストされたセットの一部ではない文字を 1 つだけ消費します。これは、エンジンが重要な区切り文字を超えて実行されるのを防ぎ、無限バックトラッキング ループによって引き起こされる ReDoS を回避する強力なツールです。

試してみてください

運動#regex.m5.l3.e1
試行回数: 0読み込み中…

二重引用符自体を取得せずに、二重引用符で囲まれたすべての文字列の内容を抽出します。

エディターを読み込み中…
ヒントを表示

.+ を [^"]+ に置き換えます。このようにして、一致は次の引用符で停止します。

3 回の試行後に解決策が利用可能になります

復習演習

運動#regex.m5.l3.e2
試行回数: 0読み込み中…

子音のみで構成される単語をすべて検索します (母音、数字、記号は含まれません)。

エディターを読み込み中…
ヒントを表示

括弧内では、母音否定と \\W (単語以外) および \\d (数字) を組み合わせることができます。

3 回の試行後に解決策が利用可能になります

追加の課題

運動#regex.m5.l3.e3
試行回数: 0読み込み中…

空白とカンマを明示的に除外して、1 つ以上の文字のシーケンスと一致します。

エディターを読み込み中…
ヒントを表示

[^\\s,] を + 量指定子とともに使用します。

3 回の試行後に解決策が利用可能になります