【问题标题】:match symbols + and * in a regular expression using replace-regexp in emacs使用emacs中的replace-regexp匹配正则表达式中的符号+和*
【发布时间】:2018-10-16 12:50:47
【问题描述】:

似乎是一个非常基本的问题,但如何使用 replace-regexp(或 re-bulding)在正则表达式中捕获字符 * 和/或 + ? 问题是,如果我没记错的话,+* 分别用于匹配至少一个或零个或多个前一个字符。

更具体地说,我想匹配[^*+] 之类的内容,即*+ 以外的任何字符。

我可以在任何地方找到答案...

【问题讨论】:

    标签: regex emacs


    【解决方案1】:

    如果您在方括号内使用这些字符,则它们将被视为字符,而不是重复符。唯一需要特别注意的是 - 字符 - 因为它用于指定字符范围,如果在范围搜索中使用它应该是第一个字符,例如 [-+][^-+]

    如果您在范围运算符之外使用这些字符,则需要使用反斜杠对其进行转义,例如 \+\\+(如果它在执行正则表达式的代码中)。

    您可以在EmacsWikidocumentation 中找到有关正则表达式语法的更多信息。

    【讨论】:

    • 我可能错过了文档的这一部分。否则,“如果它在执行正则表达式的代码中”到底是什么意思?
    • 当你直接执行它们时,反斜杠在正则表达式本身中的编码方式与包含正则表达式的字符串中的反斜杠之间存在差异,因为反斜杠也用于转义其他字符,然后它们需要自己转义,例如:github.com/alexott/cql-mode/blob/master/cql-mode.el#L26
    猜你喜欢
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2012-01-11
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    相关资源
    最近更新 更多