問題タブ [non-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 投票する
5 に答える
470 参照

c# - なぜこの正規表現は貪欲なのですか?

""内に/thumb/が含まれているすべてのリンクを抽出しようとしています。実際、私は画像srcを使用するだけで済みます。画像がjpgで終わるのか、大文字と小文字の区別の問題があるのか​​などはわかりません。実際には、完全なリンクのみを気にします。

私の完全なコード

thumbUrlは次のようになります

center \ "> ...テキストが多く、/ thumbs / ... src = \" http://images.fdhkdhfkd.com/thumbs/dfljdkl/22350.jpg

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

sql - 正規表現: 引用符で囲まれたテキストを含む SQL PRINT ブロックに一致します

正規表現を使用して一致させようとしている次のテキストがあります。

PRINT CONVERT(NVARCHAR, CURRENT_TIMESTAMP, 111) + ' ' + CONVERT(NVARCHAR, CURRENT_TIMESTAMP, 108) + ' -Test Mode : ' + (CASE WHEN @turbo_mode_ind = 1 THEN 'some text ''test'' some more text.' ELSE 'およびさらに多くのテキスト ''temp'' いつ停止しますか?' END)

PRINT 'text don''not text'

PRINT 'テキスト ''test2'' テキスト'

私が一致させたいのは:

PRINT CONVERT(NVARCHAR, CURRENT_TIMESTAMP, 111) + ' ' + CONVERT(NVARCHAR, CURRENT_TIMESTAMP, 108) + ' -Test Mode : ' + (CASE WHEN @turbo_mode_ind = 1 THEN 'some text ''test''

PRINT 'テキスト''test2''

だから基本的に私は一致したい:

  • PRINTから始まる
  • PRINT (.*) の後に続く各文字
  • 改行を含む (改行で止めないでください)
  • 一致の最後に \'{2}\w+\'{2} を使用
  • 非貪欲 (.*?)
  • AND PRINT と \'{2}\w+\'{2} の間に空行がない

私はすでにこれを作成しましたが、それでも空の行に一致します:

PRINT.*?\'{2}\w+\'{2}(?!\n\s*\n)

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

.net - RegEx: 可能な限り最小の一致または貪欲でない一致

RegEx (.NET バージョン) に最大の一致ではなく最小の有効な一致を取得するように指示するにはどうすればよいですか?

0 投票する
12 に答える
343418 参照

regex - 正規表現のコンテキストで「怠惰」と「貪欲」は何を意味しますか?

これら2つの用語は、わかりやすい方法で何ですか?

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

regex - Xcodeの怠惰な正規表現

私はこのようなものを置き換えようとしています:

と:

Xcodeで。したがって、これらはソースファイルです...正規表現は次のようになります。

しかし、私はこれを怠惰にする必要があります。それ以外の場合、。+)は、最初の括弧ではなく最後の括弧に一致します(たとえば、最後の両方の括弧は、次の文字列を指定すると1つの括弧に置き換えられます: "NSLog(@"%@ "、NSSomeFunction(@" hey "、@ "笑"))" )。

このような怠惰な検索を行う方法は?修飾子/U(貪欲でない)を使用して、真珠でこれを行うことができると思います。Xcodeはそれをサポートしていないようですが。

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

regex - 正規表現は怠惰な振る舞いをしている、貪欲であるべき

デフォルトでは、私の正規表現は私が望む貪欲な動作を示すと思いましたが、次のコードにはありません:

出力:

単純にキーワードを長さの降順で並べ替えれば、この小さな例でも機能することがわかりましたが、

  • これが期待どおりに機能しない理由を理解したいのですが、
  • 私が取り組んでいる実際のプロジェクトでは、正規表現にさらに多くの単語が含まれており、それらをアルファベット順に保つことが重要です。

だから私の質問は、なぜこれが怠惰なのか、どうすれば修正できるのか?

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

regex - Sed 非貪欲な中括弧の一致

ファイル a.txt に文字列があります

{moslate}alho{/moslate}otra{moslate}a{/moslate}

otrased を使用して文字列を取得する必要があります。

この正規表現で

sed 's|{moslate}.*{/moslate}||g' a.txt

a はまったく出力されませんが?、正規表現に a を追加すると

s|{moslate}.*?{/moslate}||g a.txt

(正規表現が貪欲でなくなることをどこかで読んだことがあります)まったく一致しません。つまり、次の出力が得られます

{moslate}alho{/moslate}otra{moslate}a{/moslate}

sed を使用して必要な出力を取得するにはどうすればよいですか?

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

regex - 違いは何ですか 。*?および。*正規表現?

正規表現を使用して文字列を2つの部分に分割しようとしています。文字列の形式は次のとおりです。

私はこれまで使用(.*?)<してきましたが、<(.*?)>これは問題なく機能しますが、正規表現を少し読んだ後?、式になぜが必要なのか疑問に思い始めました。私はこのサイトでそれらを見つけた後でそのようにしただけなので、違いが何であるか正確にはわかりません。

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

regex - 正規表現では、それは怠惰または貪欲ではないと呼ばれていますか?

私はもともとそれを貪欲ではないと聞いた。それから、「ウェブ上の」参照で、私はそれが怠惰と呼ばれるのを見ました。どっち?

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

python - Pythonreでの欲張り対非欲張りマッチング

これがPython(2.6.5)のバグであるか、正規表現を作成する能力であるか、またはパターンマッチングの理解であるかを発見するのを手伝ってください。

(考えられる答えは「Pythonをアップグレードする」であることを受け入れます。)

私はYubikeyトークンを解析しようとしており、オプションの追加機能を考慮に入れています。

この正規表現を使用して、オプションの追加機能なしで(つまり、2つのキャプチャグループに一致するもののみを含む)トークンを一致させると、一致は失敗します。

ただし、最初のグループを欲張りでないものにすると、次のようになります。

成功します。

それで、OK、それは機能していますが、これら2つの正規表現の最終結果の唯一の違いはパフォーマンスだと思いました。

ExpressoとRegexCoachは、どちらも両方のパターンが好きです。

私は何を逃しましたか?


これが私がテストしている2つの文字列です。

オプションの追加機能(失敗する可能性のあるもの)はありません:

オプションのエクストラを使用する場合(これまでのところ失敗していません。実際のタブはここでは「_」として表示されます):


Alex Martelliからの提案を使用して再現しようとしましたが、生のPython環境では失敗しないので、コードを再検討します(実際には、yubikey-pythonをハッキングしています)。一日かそこらで報告します。


皆様、お詫び申し上げます。問題を再現できません。getpassそれが起こったとき、私は;を介して入力を読んでいました。偶発的な外国のキーストロークが邪魔になったのではないかと思います。

質問を閉じます。質問に賛成した人が投票を削除したい場合、それは公正です。

本当にごめんなさい。