任意の句読点を含む任意の文字列を使用して、多くの字句処理を行います。魔法の文字/文字列を使用するか、記号定数を使用するかについては、意見が分かれています。
ほとんどの例は Java ですが、言語に依存しないものとして読む必要があります。
句読点に意味的な役割があり、定数として識別されるべき明確な例があります。
File.separator
ない"/"
か"\\"
; // OS に依存するので簡単
そして私は書きXML_PREFIX_SEPARATOR = ":"
ます。
""
ただし、すべての例を空の文字列 ``に置き換える必要があるとしましょう。私は書くことができます:
s = s.replaceAll("\"\"", "");
また
s = s.replaceAll(S_QUOT+S_QUOT, S_EMPTY);
(すべての一般的な句読点を S_FOO (文字列) および C_FOO (文字) として定義しました)
魔法の文字列/文字を支持して:
- 短いです
- 読むのは当然です(時々)
- 名前付き定数はなじみがないかもしれません (
C_APOS
vs'\''
)
定数に賛成
- タイプミスがしにくい (例: との
"''" + '"'
対比S_APOS+S_APOS + C_QUOT
) - エスケープの問題を取り除き
"\\s+"
ます"\s+"
"\\\\s+"
- 句読点のコードを簡単に検索できます
(これには限界があります - 正規表現の構文はすべてのプログラミングの中で最も認知的に機能不全に陥った部分の 1 つですが、私はこの方法で正規表現を書きません。より良い構文が必要だと思います。)