[解決済み】正規表現と文字グループ全体の否定【重複】について
2022-04-05 15:27:44
質問
私はあることを試みているのですが、それは私にとってかなり明白であるべきだと思うのですが、そうではありません。 私は、特定の文字列を含まない文字列にマッチさせようとしています。 私は
[^ab]
,
[^(ab)]
などを使うと、'a' や 'b' を含まない文字列、'a' のみ、'b' のみ、'ba' を含む文字列にマッチし、'ab' にはマッチしません。 私があげた例は 'ab' にはマッチしませんが、'a' だけにもマッチしません。 何か簡単な方法はないでしょうか?
どのように解決するのですか?
負のルックヘッドを使用する。
^(?!.*ab).*$
UPDATE: 以下のコメントで、このアプローチは ピーターさんの回答 . その後、いくつかのテストを行ったところ、本当にわずかに速いことがわかりました。 しかし、この手法を好む理由は、スピードではなく、シンプルであることです。
もう1つのテクニックは こちら として 強欲なトークン は、区切り文字が複数の文字で構成されている区切りテキストをマッチングするような、より複雑な問題に適しています (HTMLのように、Lukeがコメントしたように)。 以下 ). 質問にあるような問題では、やりすぎです。
興味のある方のために、私はLorem Ipsumテキストの大きな塊を使って、"quo"という単語を含まない行の数を数えてテストしてみました。 以下は私が使用した正規表現です。
(?m)^(?!.*\bquo\b).+$
(?m)^(?:(?!\bquo\b).)+$
テキスト全体を検索しても、テキストを行に分割して個別にマッチングさせても、アンカー付きのルックアヘッドは一貫してフローティングのものを上回った。
関連
-
[解決済み] Regex オプション文字にマッチさせる方法
-
[解決済み] 正規表現におけるスラッシュのエスケープ
-
[解決済み] 文字列の完全一致のための正規表現
-
[解決済み] 標準的な10桁の電話番号にマッチする正規表現
-
[解決済み] 正規表現における非捕捉グループとは何ですか?
-
[解決済み] Microsoft Excelで正規表現(Regex)をセル内とループの両方で使用する方法
-
[解決済み] 正規表現における「lazy」「greedy」の意味とは?
-
[解決済み] jQueryセレクタの正規表現
-
[解決済み] 正規表現でエスケープしなければならない特殊文字は何ですか?
-
[解決済み】grepで1行に2つの文字列をマッチングさせる。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】REエラー:Mac OS Xでの不正なバイトシーケンス
-
[解決済み】Vimで正規表現に置換すると、`E488: Trailing characters`が発生します。
-
[解決済み] MACアドレスの正規表現とは何ですか?
-
[解決済み] 正規表現におけるスラッシュのエスケープ
-
[解決済み] DartでRegExを使うには?
-
[解決済み] URLにセミコロンが含まれていても、有効なのでしょうか?
-
[解決済み] 正規表現 AND 演算子
-
[解決済み] regex オプションのワードマッチ
-
[解決済み] 単語を含まない行にマッチする正規表現
-
[解決済み] Git の diff で、変更された行のみを表示するようにした