/ /アンダースコアではなく大文字と一致するvim正規表現-regex、vim

vim regexは大文字とマッチしますが、アンダースコアではありません - regex、vim

vim正規表現構文では、アンダースコアで始まらず、大文字で始まるすべての単語と一致させようとしています。

\([A-Z][a-z_][A-Za-z_]\+\)

これは私が今まで持っているものです。

私はこのようなものが欲しい:

\([A-Z^_][a-z_][A-Za-z_]\+\)

どこで [A-Z^\_] アンダースコアではなく、すべての大文字と一致する必要があることを示します。

どんな助けも大いに期待されます。前もって感謝します。

編集:私の質問は不十分に悩まされていました。最初のセットを大文字の文字と一致させたいのですが、その前にアンダースコアはありません。ごめんなさい。

回答:

回答№1は2

[A-Z] すでにしている ない アンダースコアを含める;マッチさせたいと思う 一言、「正規表現を一致させたくない」 内部 単語。 Vimには組み込みの < そして >b 他の正規表現方言では、@ npintiの回答を参照してください キーワードの境界;通常、小文字/大文字およびアンダースコア文字はキーワード文字であるため、これらをパターンにラップすることはすでに十分に近いはずです。

<([A-Z][a-z_][A-Za-z_]+)>

一致する前にアンダースコアを厳密にアサートしないで(ただし、そこに他のキーワードまたは非キーワード文字を許可する)には、 負帰還@<! 手段 の前にはありません

_@<!([A-Z][a-z_][A-Za-z_]+)

回答№2の場合は0

[A-Z ^ _]は、アンダースコアではなく、すべて大文字の文字と一致する必要があることを示します。

[A-Z] 既に アンダースコアを除くすべての大文字と一致します。ただし、最初のソリューションでは、 二番目 文字は小文字またはアンダースコア([a-z_])。あなたの定義に固執する場合:

アンダースコアで始まらない、大文字で始まるすべての単語

その後、 [A-Z][A-Za-z_]+ うまくいくはずです。