2016-08-13 30 views
0

前の行にバックスラッシュ(\)が含まれていない行をどのように一致させるか?前の行にバックスラッシュ()が含まれていない行を一致させる方法はありますか?

私はSublime Text 3のための正確なNotepad ++構文のハイライトを作成しています。これで、バックスラッシュ(\)区切り線の後にマクロ定義を終了する行を一致させる必要があります。それを動作させるには、最終行になる場所/場所を知るために、マッチさせる(選択する、正規表現を作成する)必要があります。

この絵はどのようにすべきである: goal

これは私がして取得しています方法です。ここで \\\n.*(?!\\\n) present

は正規表現

は、ここでは、再生することができますhttps://regex101.com/r/nQ1bP0/1ですそれが完了するまでそれと一緒に。 && get_pcvar_num(cvar_nomMinPlayersControl)) ない第二1:それを成し遂げる done

は、それが最後の行と一致するようにすることです。これは、動作しているようだ (get_realplayersnum() < get_pcvar_num(cvar_voteMinPlayers) \

#define IS_NOMINATION_MININUM_PLAYERS_CONTROL_ENABLED() \ 
    (get_realplayersnum() < get_pcvar_num(cvar_voteMinPlayers) \ 
     && get_pcvar_num(cvar_nomMinPlayersControl) \ 
     && get_pcvar_num(cvar_nomMinPlayersControl) \ 
     && get_pcvar_num(cvar_nomMinPlayersControl)) 

stock hi() 
{ 

答えて

1

を -

((?:.*\\\n)+.*)

https://regex101.com/r/qT4vX6/1

+0

申し訳ありませんが、マクロ行。次に、このhttp://regexr.com/3e0s6にサンプルを更新しました。正規表現をこの新しい正規表現に置くと、その正規表現が表示されます。 – user

+0

正規表現を更新しました。新しいテスト入力で動作します。 – charsi

+0

ありがとう、それは本当にすべてを現在キャプチャしています。しかし、今は崇高な問題のように見えますが、崇高なテキストでは何も強調していません。 https://regex101.com/r/nQ1bP0/4、それはそれを解決するために10000歩を踏み出しているかもしれません。 – user

0

これは質問https://regex101.com/r/nQ1bP0/3解決: (?<=\\\n).*[^\\]\n

をしかし、それは前後参照し、マクロがバックスラッシュ(\)を使用しない例を治療するために必要な静止画をサポートしていないため、サブライムのハイライトの問題を解決していません。 が ((.*\\\n)*.*[^\\]\n)|\n

今崇高なテキストが正しく改行が認識されています

/** 
* Change this value from 0 to 1, to use the Whitelist feature as a Blacklist feature. 
*/ 
#define IS_TO_USE_BLACKLIST_INSTEAD_OF_WHITELIST 0 

    } 
} 

/** 
* How to match the line which does not contain slash (/) when there is it on the preceding lines? 
*/ 
#define IS_NOMINATION_MININUM_PLAYERS_CONTROL_ENABLED() \ 
    (get_realplayersnum() < get_pcvar_num(cvar_voteMinPlayers) \ 
     && get_pcvar_num(cvar_nomMinPlayersControl) \ 
     && get_pcvar_num(cvar_nomMinPlayersControl) \ 
     && get_pcvar_num(cvar_nomMinPlayersControl)) // <-- is matching this whole line only 
not match this 
stock hi() 
{ 

編集

は、この問題を完全に解決します。ハイライトの開始点は別の正規表現によってキャッチされているため、ハイライトの最後に一致する必要があるため、崇高なテキストでのみ動作します。 (?x) ^\s*\#\s*(define)\s+ # define ((?:[a-zA-Z_][a-zA-Z0-9_]*)) # macro name (?: # and optionally: (\() # an open parenthesis ( \s* [a-zA-Z_][a-zA-Z0-9_]* \s* # first argument (?:(,) \s* [a-zA-Z_][a-zA-Z0-9_]* \s*)* # additional arguments (?:\.\.\.)? # varargs ellipsis? ) (\)) # a close parenthesis )?

関連する問題