Q:文字列の等価性をどのようにテストしますが、大文字と小文字を無視しますか?
文字列を比較したいが大文字小文字を無視したい状況があります。大文字と小文字はにとって重要でstring-equal
あり、明らかに以下の影響を受けませんcase-fold-search
。
(string-equal "string" "StrinG") ; => nil
(let ((case-fold-search t))
(string-equal "string" "StrinG")) ; => nil
文字列をdowncase
比較する前に、いつでも(たとえば、)文字列を前処理できます。
(string-equal (downcase "string")
(downcase "StrinG")) ; => t
しかし、それは毎回2つの追加の関数呼び出しを行うにはやり過ぎのようです。関連する述語関数を見落としたことがありますか?
比較文字列を使用したところ、次の問題が見つかりました。(setq str "title")(cond(compare-strings str "authortitle")は何かを実行します。)(compare-strings str "title")は他の処理を実行します。)最初のcompare-stringsは正の値を返します。私が欲しいもの。したがって、私は小文字の提案を使用しました。