私は正規表現の体操をしています。私は、妥当な量のスペース内にヌルチェックが続かないオペレータとしての使用法がある場合、C#コードを検索しようとしています。今私はC#コードを解析したくありません。例えば。私はこのように任意のランダムなヌル・チェック「は良いチェックとしてカウントされますように正規表現否定先読み
var x1 = x as SimpleRes;
var y1 = y as SimpleRes;
if(x1.a == y1.a)
としてコードスニペットをキャプチャしたいしかし、
var x1 = x as SimpleRes;
var y1 = y as SimpleRes;
if(x1 == null)
もそのことについては
var x1 = x as SimpleRes;
var y1 = y as SimpleRes;
if(somethingunrelated == null) {...}
if(x1.a == y1.a)
をキャプチャしません"したがって見つかりませんでした。
質問はです。その周辺に何か他のものが見つからないようにするにはどうすればよいですか。
私は初心者の方に「as」を探してから、150文字以内に否定的な先読みをしました。
\bas\b.{1,150}(?!\b==\s*null\b)
上記の正規表現は、幸運にも上記の例すべてに一致します。私の勇気は私に教えてくれます。問題は先読みしてからネガティブ先読みをすると、先読みが '== null'を見つけられない多くの状況を見つけることができるということです。
私は表現全体を否定しようとすると、どちらも役に立ちません。そうすれば、ほとんどのC#コードと一致します。
適切なC#パーサーを使用できませんか? – Gumbo
私は最初に「私は正規表現の体操をしています。私は自分自身にC#を検索しようとしています...」 –
これはフットボールを見て「体操をしているのと同じですか? :-) – xanatos