問題タブ [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.
regex - qmake 変数を抽出するための正規表現
QRegExp
qmake プロジェクト コード (*.pro ファイル) から変数名を抽出するための を作成しようとしています。
変数の使用法の構文には、次の 2 つの形式があります。
- $$VAR
- $${VAR}
したがって、私の正規表現は両方のケースを処理する必要があります。私はこのように表現を書こうとしています:
しかし、期待どおりに機能しません。文字列の場合、「貪欲」マッチングモードを無効にして一致させました($$VAR
)。私が理解したように、私の場合、gready-mode は間違った結果につながる可能性があります。
それで、私は何を間違っていますか?
または、貪欲モードを使用する必要があり、この動作を気にしないでください:)$$V
QRegExp::setMinimal (true)
PS 変数名には、スペースやその他の「特殊な」記号を含めることはできません。文字のみを使用してください。
regex - 正規表現非欲張りマッチング
「$」と「|$」の間の最短の文字列に一致する正規表現が必要です
テスト文字列の例:
正規表現:
私は得る
しかし、私はブラブラが必要です
これを達成する方法を知っている人はいますか?
regex - エディターが非貪欲な一致をサポートしていない場合でも、正規表現置換で最小の一致を行う方法
正規表現検索を使用して、次の文字列を置き換えます。
と
regex replace を \new{(.*)} に使用して検索し、\1 を使用して置換しました。
ただし、検索は常に元の文字列の行全体と一致し、置換結果は次のとおりです。
私が必要とするものからはほど遠い。
Java の正規表現では、? 量指定子が消極的な量指定子になった後。次に、最小の一致を見つけようとします。したがって、Javaでは、私の検索正規表現は次のようになります
最小の一致を行うには、TeXStudio で対応する正規表現検索文字列が必要です。とにかく、TexStudioが貪欲でない一致をサポートしていなくても、このケースを解決するにはどうすればよいですか?
vim - vim 非貪欲な予期しない動作
私はvim(バージョン7.3)を使用しています。
次の行で
1xAxBx4
A
とB
は任意の英数字にすることができますが、 に置き換えたいと思いxBx4
ますfoo
。次の置換コマンドを試しました
:s/x.\{-}x4/foo/
1foo
私が期待したものの代わりに取得します( 1xAfoo
)。1xAfoo
この置換コマンドを使用すると取得できます
:s/x[^A]x4/foo/
「A」は各行で異なる文字になる可能性があるためです。
で予期しない動作が発生するのはなぜ\.{-}
ですか? それとも、これはまさに期待どおりですが、構文を誤解しているだけですか?
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{a
LaTeX の規則に準拠していないためです (たとえば、 の{
前に来る必要があります}
)。そのためa}\o{a
、演算子の引数にすることはできません...
Edit2 :一方、有効な引数である\o{{a}}{b}
ため、一致する必要があります。{a}