前端之家收集整理的这篇文章主要介绍了
Emacs 函数自动生成正则表达式,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_10@ Emacs 里面的正则表达式首先让人感觉太乱了!主要原因是特殊字符(或称特 殊表)少,所以如果匹配常见的如:"()[]{}|"都需要用"\"转义!
(let ((str "abc]-^]123"))
(string-match "[]^0-9-]+" str)
(match-string 0 str)) ; => "]-^]123"
@H_404_10@ Emacs 提供一个很好的正则表达式调试工具:M-x re-builder。它能显示 buffer 匹配正则表达式的字符串,并用不同颜色显示捕捉的字符串。
@H_
404_10@ 可以用emacs
自动生成一个高效的正则匹配:
(regexp-opt '("foobar" "foobaz" "foo"))
;; C-u C-x C-e ==> "\\(?:foo\\(?:ba[rz]\\)?\\)"
@H_
404_10@ 常用的
函数
(regexp-quote STRING)
(regexp-opt STRINGS &optional PAREN)
@H_
404_10@ 常用命令
describe-Syntax
describe-categories
@H_
404_10@ 示例
(setq adaptive-fill-regexp "[ \t]+\\|[ \t]*\\([0-9]+\\.\\|\\*+\\)[ \t]*")
;; 上面正则表达式:这表示前缀可以全是空白字符。或者开头可以有一些空白,
;; 接着数字加点或者一个以上的 *,接着一些空白。