加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Emacs 函数自动生成正则表达式

发布时间:2020-12-14 02:28:11 所属栏目:百科 来源:网络整理
导读:Emacs 正则表达式 by Jian Lee Emacs 里面的正则表达式首先让人感觉太乱了!主要原因是特殊字符(或称特 殊表)少,所以如果匹配常见的如: "()[]{}|" 都需要用 "" 转义! (let ((str "abc]-^]123")) (string-match "[]^0-9-]+" str) (match-string 0 str))

Emacs 正则表达式

by Jian Lee

Emacs 里面的正则表达式首先让人感觉太乱了!主要原因是特殊字符(或称特 殊表)少,所以如果匹配常见的如:"()[]{}|"都需要用""转义!

(let ((str "abc]-^]123"))
  (string-match "[]^0-9-]+" str)
  (match-string 0 str))                 ; => "]-^]123"

Emacs 提供一个很好的正则表达式调试工具:M-x re-builder。它能显示 buffer 匹配正则表达式的字符串,并用不同颜色显示捕捉的字符串。

可以用emacs自动生成一个高效的正则匹配:

(regexp-opt '("foobar" "foobaz" "foo"))
;; C-u C-x C-e ==> "(?:foo(?:ba[rz])?)"

常用的函数

(regexp-quote STRING)
(regexp-opt STRINGS &optional PAREN)

常用命令

describe-syntax
describe-categories

示例

(setq adaptive-fill-regexp "[ t]+|[ t]*([0-9]+.|*+)[ t]*")
;; 上面正则表达式:这表示前缀可以全是空白字符。或者开头可以有一些空白,
;; 接着数字加点或者一个以上的 *,接着一些空白。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读