問題タブ [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.

0 投票する
1 に答える
125 参照

javascript - 最後の文字列が正規表現と一致しません

正規表現の助けが必要です。一致させたいこのコードがあります。

最後のものは私が望むものと一致しません。最初の ul#items に一致し、最初の {{/items}} が来ると停止するようにしたいだけです。reg は、最初の 2 つの HTML タグなしで機能します。

最後の方法を理解するのに助けが必要です。

ありがとう

0 投票する
4 に答える
1573 参照

regex - Perlの欲張りでない

欲張りでない正規表現(regex)に問題があります。欲張りでない正規表現に関する質問があるのを見てきましたが、それらは私の問題に答えません。

問題:「lol」アンカーのhrefを一致させようとしています。

注:これはPerl HTML解析モジュールで実行できることを知っています。私の質問は、PerlでのHTMLの解析に関するものではありません。私の質問は正規表現自体についてであり、HTMLは単なる例です。

テストケース:との4つのテストが.*?あり[^"]ます。2つは、最初に期待される結果を生成します。しかし、3番目はそうではなく、4番目はちょうどそうですが、理由はわかりません。

  1. .*?との両方のテストで3番目のテストが失敗するのはなぜ[^"]ですか?貪欲でないオペレーターは機能すべきではありませんか?
  2. .*?との両方のテストで4番目のテストが機能するのはなぜ[^"]ですか?前に含めると正規表現が変わる理由がわかりません.*(3番目と4番目のテストは前を除いて同じ.*です)。

私はおそらく、これらの正規表現がどのように機能するかを正確に理解していません。Perlクックブックレシピは何かについて言及していますが、それが私の質問に答えるとは思いません。

0 投票する
4 に答える
2518 参照

python - 正規表現:貪欲と非貪欲の両方のブラケットに一致

私はpython正規表現モジュールを使用していますre.

この 2 つのフレーズの '(' ')' 内のすべてを一致させる必要がありますが、「それほど貪欲ではありません」。このような:

結果は、フレーズ 1 から返されます。

フレーズ 2 から結果が返されます。

問題は、最初のフレーズに合わせるために、私が使用したことです'\(.*?\)'

これは、2番目のフレーズで、ぴったりです+ (* (2 4)

そして'\(.*\)'、2番目のフレーズを正しく適合させるために使用すると、最初のフレーズが適合します(name) of the (person)

両方のフレーズで正しく機能する正規表現は何ですか?

0 投票する
2 に答える
565 参照

java - 貪欲すぎるJavaの正規表現には新鮮な目が必要

次の形式の文字列があります。

目的は、グループ内の canonical_class_name をキャプチャしてから、key=value グループを交互に取得することです。現在、これはテスト文字列と一致しません (次のプログラムでは、testString)。

少なくとも 1 つのキーと値のペアが必要ですが、そのようなペアは多数存在する場合があります。

質問: 現在、正規表現は標準クラス名と最初のキーを正しく取得しますが、最後の二重引用符まですべてを飲み込んでしまいます。キーと値のペアを遅延取得するにはどうすればよいですか?

次のプログラムがまとめた正規表現は次のとおりです。

好みによっては、プログラムのバージョンの方が読みやすいかもしれません。

私のプログラムが文字列を渡された場合:

...これらは私が得るグループです:

もう 1 つ注意してください。I を使用String.split()すると式を簡略化できますが、正規表現の理解を深めるための学習経験としてこれを使用しているため、このようなショートカットは使用したくありません。

0 投票する
4 に答える
100 参照

javascript - 正規表現のヘルプ

私は正規表現があまり得意ではないので、助けが必要です。

次のような文字列があります。

私はそれを次の正規表現と一致させようとしています:

しかし、それは一致していません。次に、デバッグしました。デバッグに使用した正規表現は次のとおりです。

文字列は次のとおりです。

一致は次のとおりです。

{type ='cost'、field ='flag&e band 100s($ 1 / M's)'、value = '680'}、{type ='cost'、field = '29 version'、value = '250'}

この文字列が一致した理由を理解しています。他の文字列が一致しなかった理由がわかりません。他の一致する文字列は次のようになると予想しました。

  1. {type ='cost'、field ='flag&e band 100s($ 1 / M's)'、value = '680'}、

  2. {type ='cost'、field = '29 version'、value = '250'}

なぜこれらの試合が行われなかったのですか?

0 投票する
1 に答える
248 参照

c# - 正規表現は貪欲すぎる

範囲を検証する必要があります。入力は次の形式です。

次の正規表現を使用しています。

ユーザーが入力"anydate between 20100101 ~~ 20100101 and test1"すると失敗し、までキャプチャしtest1ます。

正規表現の貪欲さを減らし、キャプチャまでのみにする方法は20100101?

0 投票する
2 に答える
1778 参照

java - Java正規表現の複数行にわたって欲張りでないものを抽出するにはどうすればよいですか?

複数の行にまたがる大量のデータがある場合、どうすればそれを欲張りでないようにすることができますか?私が持っているのは貪欲です。

サンプルデータ

これがこれまでの私のコードです

0 投票する
1 に答える
121 参照

regex - OR を使用した遅延正規表現

次の形式の文字列があります。

abcabcdおよびを遅延一致させたいabcdeので、最初のコンポーネントを取得できます。だから何か

ただし、正規表現のOR貪欲な一致cbaと私は得るoscard

これを怠惰に一致させるにはどうすればよいORですか? 言語は R ですが、grep や perl のように動作できます。

0 投票する
3 に答える
2495 参照

regex - 区切り文字間のテキストの一致:欲張りまたは怠惰な正規表現?

区切り文字(例<>)の間でテキストを一致させるという一般的な問題には、2つの一般的なパターンがあります。

  • 貪欲*または+数量詞を次の形式START [^END]* ENDで使用する<[^>]*>、または
  • 怠惰*?または+?数量詞を次の形式START .*? ENDで使用し<.*?>ます。

どちらか一方を優先する特別な理由はありますか?

0 投票する
1 に答える
719 参照

regex - 非貪欲な grep の動作を変更する必要があります

クライアントのブログに挿入された大量のスパムを一掃しようとしています。問題の 1 つは、最初にインジェクションを行ったハックが、実際には不正な形式の複数埋め込みリンクを作成する方法でインジェクションを行ったため、それらを簡潔に把握するのに苦労していることです。

私が考えたのは、投稿テーブル内のすべてのリンクをテキスト ファイルにダンプし、そのリストから有効なものを削除し、そこから悪意のあるリンクを一度に 1 行ずつ削除する bash スクリプトを作成することでした。貪欲でないgrepを使用してリンクをダンプしようとしていました。そうしないと、投稿に複数のリンクがある場合、最初のリンクの最初から最後のリンクの終わりまで移動します。これは私が使用していた行です:

この問題は、他のリンク内に埋め込まれたリンクを解析しようとしたときに発生しています。たとえば、次のようになります。

このようなセクションから:

ただし、すべてのリンクがこのように壊れているわけではありません。上記のコマンドから出力されたものを一掃すると、がれきを追跡するのが非常に難しくなると思います. 私が必要だと思うのは、ブロック全体をつかむもの(つまり、開始<a hrefと同じ数の終了を一致させる</a>)、または可能な限り最小の内側の一致(つまり、内側から貪欲)のいずれかであり、複数のパスでそれを行います、しかし、他の提案も受け付けています。これについて何か考えはありますか?ありがとう!