[解決済み] Regex Until But Not Including
質問
regexについて、until but not includeを検索する構文は何ですか?ようなものです。
Haystack:
The quick red fox jumped over the lazy brown dog
Expression:
.*?quick -> and then everything until it hits the letter "z" but do not include z
どのように解決するのですか?
明示的なquot;searchの言い方
X
を含むが
X
"です。
(?:(?!X).)*
ここで
X
は任意の正規表現である。
しかし、あなたの場合、これはやりすぎかもしれません - ここでは最も簡単な方法は
[^z]*
以外のものにマッチします。
z
にマッチするので、次の
z
.
そこで
.*?quick[^z]*
は
The quick fox jumps over the la
.
しかし、単純な文字が複数になると、すぐに
(?:(?!X).)*
が使われるようになります。
(?:(?!lazy).)*
- という単語の先頭までが一致します。
lazy
.
これは ルックアヘッド・アサーション で、より具体的には負のルックヘッドです。
.*?quick(?:(?!lazy).)*
は
The quick fox jumps over the
.
説明
(?: # Match the following but do not capture it:
(?!lazy) # (first assert that it's not possible to match "lazy" here
. # then match any character
)* # end of group, zero or more repetitions.
さらに、キーワードを検索する場合、単語境界のアンカーで囲むとよいでしょう。
\bfox\b
は完全な単語
fox
の中のキツネにはマッチしません。
foxy
.
ノート
マッチさせるテキストに改行が含まれる場合、正規表現エンジンの "dot matches all" オプションを設定する必要があります。通常、このオプションは
(?s)
を先頭につけることで実現できますが、これはすべての正規表現エンジン(特にJavaScript)で動作するわけではありません。
代替の解決策です。
多くの場合、遅延量詞を使ったよりシンプルで読みやすい解決策を使うこともできます。を追加することで
?
に
*
を指定すると、現在の位置からできるだけ少ない文字にマッチしようとします。
.*?(?=(?:X)|$)
は任意の数の文字にマッチし、直前の
X
(これは任意の正規表現) または文字列の終端 (もし
X
がマッチしない場合)。また、これを動作させるために "dot matches all" オプションを設定する必要がある場合もあります。(注意: 私は、捕捉しないグループを
X
の周りに捕捉しないグループを追加して、交互配列から確実に分離するようにしました)
関連
-
[解決済み] 正規表現による逆マッチ[重複]の場合
-
[解決済み] Apache LocationMatch Regex
-
[解決済み] ColdFusion を使用して XML 文字列から余分なホワイトスペースをすべて削除するにはどうすればよいですか?
-
[解決済み] 文字列の最後の文字にマッチする正規表現[重複]について
-
[解決済み] grepで星座を使う
-
[解決済み] 正規表現におけるワードバウンダリとは何ですか?
-
[解決済み] ファイルを grep して、その周辺の行をいくつか表示する?
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] grep --exclude/--include構文を使って特定のファイルをgrepしないようにする
-
[解決済み] 正規表現で「この文字列までなら何でもあり」にマッチさせるには?
最新
-
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 実装 サイバーパンク風ボタン