2017-01-04 6 views
0

Visual Studio Codeの正規表現構文では、特定の文字列のすべての出現を見つけることができますか?別のパターンがあります場合を除き別のパターンを含むパターン以外のパターンに一致する行を検索します。

&$ 

、たとえば

function functionname(&$variable, ...) 

ための同じ行の文字列function(を、言いますか?

これは私のために動作しません:

(?!function).*\&\$ 

それは単にそれらでfunctionすべて結果、両方のラインをもたらし、そして私は&$のための簡単な検索をしていたかのように、なし。

VSCode's Regex help page は、Visual Studioのヘルプページには、それは方法だことを示唆しているようだが、私はそれがVSコードのどの星座に仕事を得るように見えることはできませんので、アプリケーションが異なる表記を使用しているようです。

私は周りにグーグルをしてきた(私は別の正規表現の味から)いくつかの他の表記も動作しません。

+0

1行に1つの出現に一致します。コード。これは完全なVSに適用されます。 VSコードは.NET Regexesを使用していないようです。 – Eric

+0

@Eric確かに!なぜそれがうまくいかなかったのかが分かります。私は編集します。 –

答えて

2

この正規表現は動作することができる:

^(?!.*function\().*(\&\$) 

&$を最初のグループに取り込まれる:

a &$ b 
a &$ function() 
a &$ function() 
function() &$ a 
a function() &$ a 

のみ&$最初の行になります:入力のため$1

この正規表現を使用してマッチします。

正規表現は、負の先読みを使用して、行に文字列function(が含まれていないことを確認することによって機能します。この先読みは... .*が必要とされる理由である、しかし、行の先頭に固定する必要がある。また、これが唯一のヘルプページはVSには適用されないこと

enter image description here

+0

これはうまくいくように見えますが、VSCodeは最初に 'function'を含むものも含めて*すべての*出現を捕まえます。それがバグかもしれないと考え始めた –

+0

あなたがマッチさせようとしているテキストの例を提供できますか?私はVSCode 1.8.1の簡単なサンプルテキストをMac上でテストしました。これは動作します(これを表示するスクリーンショットを追加しました) –

+0

これは、一致しないはずの例です: 'function smarty_core_assign_smarty_interface($ params、&$ smarty)' MacOS上のVSコード、これは*合っています*。奇妙な! –

関連する問題