emacs交互式搜索search-forward-regexp差异

时间:2012-09-13 17:34:54

标签: regex emacs

我有几个正则表达式可以正常使用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。我不确定我做错了什么。

1 个答案:

答案 0 :(得分:3)

你必须转义字符串文字中的反斜杠,比如

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