問題タブ [regex-greedy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 正規表現ですべての一致を見つける - 欲張りと非欲張り!
次の文字列を見てみましょう:「インターネット上のマーケティングとクリケット」。
正規表現を使用して、「Ma」-任意のテキスト-「et」のすべての可能な一致を見つけたいと思います。そう..
- 市場
- マーケティングとクリケット
- インターネットでのマーケティングとクリケット
正規表現Ma.*et
は「インターネット上のマーケティングとクリケット」を返します。正規表現Ma.*?et
は Market を返します。しかし、3つすべてを返す正規表現が欲しいのですが、それは可能ですか?
ありがとう。
c# - 貪欲すぎる正規表現の問題
以下の例のような文字列を解析する必要があります。
私が欲しいのは、数値を抽出することです。問題は、出力が1 The Brown
単に1
. 数字 ( ) のパターン
に文字も含まれている理由がわかりません。[0-9]
助言がありますか?
python - Python re.sub は非貪欲モード (.*?) を使用し、文字列の終わり ($) は貪欲になります!
コード:
が<br><br />A
返されるはずですが、空の文字列が返されます''
。
なにか提案を?
php - preg_match_all - 正規表現の貪欲な部分ですが、一致数を最大化します
解析する次の html があります。
これを単一の正規表現で配列に解析できますか?
私は試した
正規表現の最後の部分が貪欲であるため、エントリは 1 つしかありません。
<h1>
式が貪欲ではないため、 の間の HTML については何もわかりません。
可能な限り多くのオカレンスを一致させながら、一致した後の部分を貪欲にするにはどうすればよいですか?
追加コメント:
- 質問はかなり学術的です。私は pre_split を使用して問題を解決しましたが、他のさまざまな方法が機能しますが、欠点もあります (たとえば、DOM は制御できない無効な HTML では機能しない可能性があります)。しかし、それは私がもっと知りたいと思う繰り返しの問題です。
php - 正規表現-貪欲-一致するHTMLタグ、コンテンツ、属性
HTMLソースからの特定のスパンタグを一致させようとしています。
タグのlang属性と内部HTMLは、新しい文字列を返す関数のパラメーターとして使用されます。
古いタグ、属性、コンテンツを呼び出された関数の結果に置き換えたい。
件名は次のようになります。
lang属性とコンテンツの値を抽出するために、これらの値を次の式でグループ化します。
正規表現は貪欲になる傾向があるため、この式は、1つのスパンタグとそのコンテンツだけでなく、完全な主題に一致します。
1つのスパンタグだけを一致させるにはどうすればよいですか?
c# - 正規表現貪欲問題 (C#)
"===text=== and ===text===" のような入力文字列があり、wiki 構文を対応する html タグに置き換えたいと考えています。
入力:
望ましい出力:
しかし、次のコードを使用すると、次の出力が得られます。
問題は、正規表現が貪欲に一致することです。しかし、それらを貪欲にしない方法。
ありがとうございます。ダニー
regex - 貪欲 vs. 消極的 vs. 独占的な修飾子
正規表現に関するこのチュートリアルを見つけました。「貪欲」、「消極的」、および「独占的」修飾子が何をするかを直感的に理解していますが、私の理解には深刻な穴があるようです。
具体的には、次の例です。
説明では、入力文字列全体を食べる、文字が消費される、マッチャーが後退する、右端の「foo」が逆流するなどについて言及しています。
残念ながら、素晴らしい比喩にもかかわらず、私はまだ誰が何を食べているのか理解できません...正規表現エンジンがどのように機能するかを (簡潔に) 説明している別のチュートリアルを知っていますか?
または、誰かが次の段落を多少異なる言い回しで説明できれば、それは大歓迎です。
最初の例では、貪欲な量指定子を使用
.*
して、文字"f"
,"o"
,"o"
. 量指定子は貪欲であるため.*
、式の部分は最初に入力文字列全体を消費します。この時点で、最後の 3 文字 ("f"
、"o"
、"o"
) は [誰によって?] 既に消費されているため、式全体は成功しません。そのため、マッチャーは [右から左へ?] 1 文字ずつゆっくりとバックオフし、右端の出現"foo"
が逆流されるまで [これはどういう意味ですか?]、その時点で一致が成功し、検索が終了します。ただし、2 番目の例は消極的であるため、最初に [誰が?] "何も" 消費しないことから始めます。
"foo"
は文字列の先頭に表示されないため、最初の文字 (an"x"
) を飲み込む [誰が飲み込むのか?] ことが強制され、0 と 4 で最初の一致がトリガーされます。テスト ハーネスは、入力文字列が使い果たされるまでプロセスを続けます。 . 4 と 13 で別の一致が見つかります。3 番目の例は、量指定子が所有格であるため、一致を見つけることができません。この場合、入力文字列全体が
.*+
[how?] によって消費され、式の末尾にある「foo」を満たすために何も残りません。後戻りせずに何かのすべてをつかみたい状況では、所有量指定子を使用します [後戻りとはどういう意味ですか?]。一致がすぐに見つからない場合は、同等の貪欲な量指定子よりも優れています。
php - 正規表現とPHPの質問、欲張りでない検索が必要です!
欲張りでない正規表現ステートメントを書き込もうとして問題が発生しました。
これが私の文字列です:
これが私の正規表現クエリです:
問題は、文字列の名前ではなく、アドレスが必要なことです。したがって、正規表現クエリは欲張りでは<strong></strong>
なく、最も遠いのではなく最も近いものにする必要があります。
.*
また、検索文字列にはこれの複数のインスタンスがあるため、その前に(貪欲な)ものを追加するのではなく、一度に複数のインスタンスに一致させる必要があります。
したがって、これのすべてのインスタンスと一致し、名前ではなくアドレスをプルする必要があります。
前もって感謝します!
regex - 代わりの貪欲な試合
'a' が 0 回から 'm' 回連続して発生するか、'b' が 0 回から 'n' 回連続して発生するかのいずれかの選択肢に貪欲に一致させたいと考えています。私が行った場合
「b」のシーケンスがある場合、「a {、m}」と一致し、代替の「b {、n}」は見られず、貪欲な一致にならないため、機能しません.
regex - 正規表現のクエスチョン マーク
正規表現のリファレンスを読んでいて、次のことを考えています。と ??文字。それらの有用性をいくつかの例で説明していただけますか? 私はそれらを十分に理解していません。
ありがとうございました