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

regex - qmake 変数を抽出するための正規表現

QRegExpqmake プロジェクト コード (*.pro ファイル) から変数名を抽出するための を作成しようとしています。
変数の使用法の構文には、次の 2 つの形式があります。

  • $$VAR
  • $${VAR}

したがって、私の正規表現は両方のケースを処理する必要があります。私はこのように表現を書こうとしています:

しかし、期待どおりに機能しません。文字列の場合、「貪欲」マッチングモードを無効にして一致させました($$VAR)。私が理解したように、私の場合、gready-mode は間違った結果につながる可能性があります。 それで、私は何を間違っていますか? または、貪欲モードを使用する必要があり、この動作を気にしないでください:)$$VQRegExp::setMinimal (true)

PS 変数名には、スペースやその他の「特殊な」記号を含めることはできません。文字のみを使用してください。

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

regex - 正規表現非欲張りマッチング

「$」と「|$」の間の最短の文字列に一致する正規表現が必要です

テスト文字列の例:

正規表現:

私は得る

しかし、私はブラブラが必要です

これを達成する方法を知っている人はいますか?

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

regex - エディターが非貪欲な一致をサポートしていない場合でも、正規表現置換で最小の一致を行う方法

正規表現検索を使用して、次の文字列を置き換えます。

regex replace を \new{(.*)} に使用して検索し、\1 を使用して置換しました。

ただし、検索は常に元の文字列の行全体と一致し、置換結果は次のとおりです。

私が必要とするものからはほど遠い。

Java の正規表現では、? 量指定子が消極的な量指定子になった後。次に、最小の一致を見つけようとします。したがって、Javaでは、私の検索正規表現は次のようになります

最小の一致を行うには、TeXStudio で対応する正規表現検索文字列が必要です。とにかく、TexStudioが貪欲でない一致をサポートしていなくても、このケースを解決するにはどうすればよいですか?

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

vim - vim 非貪欲な予期しない動作

私はvim(バージョン7.3)を使用しています。

次の行で

1xAxBx4

ABは任意の英数字にすることができますが、 に置き換えたいと思いxBx4ますfoo。次の置換コマンドを試しました

:s/x.\{-}x4/foo/

1foo私が期待したものの代わりに取得します( 1xAfoo)。1xAfooこの置換コマンドを使用すると取得できます

:s/x[^A]x4/foo/

「A」は各行で異なる文字になる可能性があるためです。

で予期しない動作が発生するのはなぜ\.{-}ですか? それとも、これはまさに期待どおりですが、構文を誤解しているだけですか?

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

php - PHP PCRE 正規表現

LaTeX では、この式\o{a}{b}は、演算子 'o' が 2 つの引数 a と b を取ることを意味します。LaTeX も を受け入れます\o{a}。この場合、2 番目の引数を空の文字列として扱います。

ここで、正規表現\\\\o\{([\s\S]*?)\}\{([\s\S]*?)\}を文字列と照合しようとします\o{a}\o{a}{b}。そうでない場合は、文字列全体が一致すると誤解します。(この文字列の正しい解釈は、部分文字列\o{a}{b}のみが一致するということです。) ポイントは、最初の } の後に { 以外の何かがある場合、それは一致しないことを PHP に認識させる方法を知る必要があるということです。

どうすればいいですか?

編集: 演算子の引数には、記号\{を含めることができます}。しかし、この場合、文字列全体が一致しない理由は、中括弧がa}\o{aLaTeX の規則に準拠していないためです (たとえば、 の{前に来る必要があります})。そのためa}\o{a、演算子の引数にすることはできません...

Edit2 :一方、有効な引数である\o{{a}}{b}ため、一致する必要があります。{a}