我试过[[\]]
,[\[\]]
,[\\[\\]]
,[[\\]]
都失败了
但是[[]
时能够匹配[
的,只是加了个]
就难办了
使用 [
匹配 [
,因为它是个特殊字符,改写成 \[
。使用 ]
匹配 ]
。举例:
(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 个赞
明白了,谢谢