正規表現に一致する文字列が私の質問で始まっていない

正規表現に一致する文字列が私の質問で始まっていない

PMDでは、 で始まる醜い変数について警告するルールが必要ですmy
これは、 で始まるすべての変数を受け入れる必要があることを意味します。ない皮切りにmy

したがって、次のように動作する RegEx (re) が必要です。

re.match('myVar')       == false
re.match('manager')     == true
re.match('thisIsMyVar') == true
re.match('myOtherVar')  == false
re.match('stuff')       == true

いろいろ試してみましたが、まだうまくいきません。

ベストアンサー1

^(?!my)\w+$

動作するはずです。

まず、文字列の先頭で一致できないことを確認してからmy、文字列の末尾まで英数字を一致させます。文字列内の任意の場所に空白があると、正規表現は失敗します。入力に応じて、文字列の前後の空白を削除してから正規表現に渡すか、 のようにオプションの空白マッチャーを正規表現に追加する必要があります^\s*(?!my)(\w+)\s*$。この場合、後方参照 1 には変数の名前が含まれます。

変数名が特定の文字グループで始まることを保証する必要がある場合、例えば[A-Za-z_]

^(?!my)[A-Za-z_]\w*$

+からへの変更に注意してください*

おすすめ記事