2

Emacsのインタラクティブ検索を使用して正常に機能する正規表現がいくつかあります。「^\」です。および「^#」。行の先頭でピリオドとハッシュを検索します。

行でこれらの正規表現を検索するインタラクティブな関数を作成しようとしていますが、失敗します。私の機能は

(defun line-contains (regexp)
  "Return true if the current line contains the passed regular expression."
  (save-excursion
    (beginning-of-line)
    (search-forward-regexp regexp (point-at-eol) t)))

電話すると

((or (line-contains "^\.")
     (line-contains "^#"))

次の行に

if ($default) 

インタラクティブ検索で呼び出された場合、その行が正規表現と一致していなくてもtrueを返します。何が間違っているのかわかりません。

4

1 に答える 1

3

このように、文字列リテラルのバックスラッシュをエスケープする必要があります

((or (line-contains "^\\.")
     (line-contains "^#"))
于 2012-09-13T17:56:08.210 に答える