[已解决] elisp中的正则表达式想匹配字符[或字符]该怎么写呢?

我试过[[\]],[\[\]],[\\[\\]],[[\\]]都失败了 但是[[]时能够匹配[的,只是加了个]就难办了

使用 [ 匹配 [,因为它是个特殊字符,改写成 \[。使用 ] 匹配 ]。举例:

(string-match "\\[" "[text]")
    ⇒ 0

(string-match "]" "[text]")
    ⇒ 5

在字符集合(如 [0-9])中只有三个特殊字符:]-^,如何在字符集合中包括它们,Emacs 有特别的规则,比如对于 ]

To include a `]’ in a character alternative, you must make it the first character.

举例:

(string-match "[]]" "[text]")
    ⇒ 5

在字符集合中直接用 [ 匹配 [,因为它在字符集中不特殊,举例:

;; 匹配一个字符: ] 或 [
(string-match "[][]" "aaaa[text]")
    ⇒ 4
5 个赞

明白了,谢谢