【问题标题】:"Or" operator in emacs regexp with `M-x occur`带有“M-x发生”的emacs正则表达式中的“或”运算符
【发布时间】:2013-01-27 04:05:33
【问题描述】:

我想大致了解一下我的 Python 程序,所以我跑了:

M-x occur

对于我提供的正则表达式

(def)|(class)

没有匹配到任何东西。

我也看过this的帖子,并尝试过

(def)\\|(class)

但这也没有匹配任何东西......

如何让M-x occur 匹配classdef

【问题讨论】:

  • () 匹配 Emacs 正则表达式中的括号。对于分组,您使用\(\)。交替运算符是\|。只有在将正则表达式写成双引号字符串时才需要双反斜杠(因为反斜杠在字符串语法和正则表达式语法中都很特殊)。
  • 对不起,请继续……您尝试了|,您尝试了\\|...您是否懒得自己尝试\|
  • Dualinity:由于相当明显的原因,Emacs 中字符串和正则表达式的转义要求一开始可能会令人困惑,因此没有必要侮辱。毕竟,我很确定你的 50多个关于 Emacs 的问题中,至少有一些问题可以通过自己搜索内置手册来回答,而不是“懒惰地”让其他人告诉你的答案。

标签: regex emacs


【解决方案1】:

你必须使用单反斜杠(不带括号,或者你也应该转义括号):

def\|class

【讨论】:

    猜你喜欢
    • 2015-04-12
    • 1970-01-01
    • 2011-05-25
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 2012-10-30
    相关资源
    最近更新 更多