2012-04-11 27 views
1

私はリファクタリングしていますthis regular expression定数にC#の文字列と私はどのように最善の名前(私の正規表現のfuが弱い)がわかりません。この正規表現の名前は何ですか?

@"^(?!\s\s)"

疑問符は、オプションの何かを意味しませんか?何が問題なのですか?

私は、開発者として、正しく名前を付ける前に何かを明確に理解しておかなければならないことを発見しました。これも明確に理解してから、適切な名前を付けたいと思います。

この正規表現の名前は何ですか?

私はLinesThatDoNotStartWithTwoSpacesまたはDoesNotStartWithTwoSpacesと考えています。

+5

私はいつもこのルールを使用します。あなたが理解していないことをリファクタリングしないでください。 –

+3

+1これは、変数名に多くのケアを与えるための...愛の男の多く..愛の多く! – Galilyou

+0

@ 32bitkidそれを愛する。 – lance

答えて

1

として正規表現に名前を付けます。たとえば、NotHumanの場合、その意味はHumanの定義で変わります。 また、変数名にはwhat-this-does-do-doを指定する必要があります。したがって、動詞を変数名に使用することは好ましくありません(SearchMatchなど)。

あなたのケースでは、のCSS3に似たLineWithoutIndentationのようになります。

0

これは、構造自体は否定先読みでNegative lookahead

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 – Crippledsmurf

+0

@Crippledsmurf:問題がネガティブな先読みを書く方法であった場合、コードには含まれていましたが、質問にはすでに否定的な先読みが含まれていました。問題は、そのコンストラクトが*呼ばれたものです。私が含まれている "ネガティブな先読み"という名前は、*答えの不可欠な部分です。リンクはクレームを調達しているだけで、私はこの全く同じ答えをリンクなしで書いていた可能性があります。リンクされたページが変更された場合、この回答は無効になりません。 –

5

と呼ばれています。主な表現の後に一致しないグループを指定します。

この場合、一致する行が2つのスペース(空白)で始まらない場合は一致します。

私は常に変数名にNotを使用しようとしてNotMatchLineStartingWithTwoWhiteSpaces