优秀的编程知识分享平台

网站首页 > 技术文章 正文

Emacs的常用regex查询总结(emacs orgmode)

nanyue 2024-09-10 16:11:29 技术文章 7 ℃

首先是特殊的Metacharacter:

. * + ? ^ $ \ [ 

注意的一点,emacs的regex可以直接用 `?` 与 `+`.

而在 `[]` 之内 这 `] - ^` 三个是特殊字符。

 .        any character (but newline)
  *        previous character or group, repeated 0 or more time
  +        previous character or group, repeated 1 or more time
  ?        previous character or group, repeated 0 or 1 time
  ^        start of line
  $        end of line
  [...]    any character between brackets
  [^..]    any character not in the brackets
  [a-z]    any character between a and z
  \        prevents interpretation of following special char
  \|       or
  \w       word constituent
  \b       word boundary
  \sc      character with c syntax (e.g. \s- for whitespace char)
  \( \)    start/end of group
  \< \>    start/end of word (faulty rendering: backslash + less-than and backslash + greater-than)
  \_< \_>  start/end of symbol
  \` \'    start/end of buffer/string
  \1       string matched by the first group
  \n       string matched by the nth group
  \{3\}    previous character or group, repeated 3 times
  \{3,\}   previous character or group, repeated 3 or more times
  \{3,6\}  previous character or group, repeated 3 to 6 times
  \=       match succeeds if it is located at point

此处要注意的是,有 or 的操作,但是要 escape 掉。

其中 *?, +?, and ?? are non-greedy versions of *, +, and ?

另外列出语义化的semantic classes:

  [:digit:]  a digit, same as [0-9]
  [:alpha:]  a letter (an alphabetic character)
  [:alnum:]  a letter or a digit (an alphanumeric character)
  [:upper:]  a letter in uppercase
  [:lower:]  a letter in lowercase
  [:graph:]  a visible character
  [:print:]  a visible character plus the space character
  [:space:]  a whitespace character, as defined by the syntax table, but typically [ \t\r\n\v\f], which includes the newline character
  [:blank:]  a space or tab character
  [:xdigit:] an hexadecimal digit
  [:cntrl:]  a control character
  [:ascii:]  an ascii character
  [:nonascii:]  any non ascii character

然后是 syntax classes:

  \s-   whitespace character        \s/   character quote character
  \sw   word constituent            \s$   paired delimiter         
  \s_   symbol constituent          \s'   expression prefix        
  \s.   punctuation character       \s<   comment starter          
  \s(   open delimiter character    \s>   comment ender            
  \s)   close delimiter character   \s!   generic comment delimiter
  \s"   string quote character      \s|   generic string delimiter 
  \s\   escape character            

当然,这些平常也用不大着。

最后是常用的emacs-commands:

 C-M-s                   incremental forward search matching regexp
 C-M-r                   incremental backward search matching regexp 
 replace-regexp          replace string matching regexp
 query-replace-regexp    same, but query before each replacement
 align-regexp            align, using strings matching regexp as delimiters
 highlight-regexp        highlight strings matching regexp
 occur                   show lines containing a match
 multi-occur             show lines in all buffers containing a match
 how-many                count the number of strings matching regexp
 keep-lines              delete all lines except those containing matches
 flush-lines             delete lines containing matches
 grep                    call unix grep command and put result in a buffer
 lgrep                   user-friendly interface to the grep command
 rgrep                   recursive grep
 dired-do-copy-regexp    copy files with names matching regexp
 dired-do-rename-regexp  rename files matching regexp 
 find-grep-dired         display files containing matches for regexp with Dired

Tags:

最近发表
标签列表