在许多正则表达式实现中,以下规则适用:
字符类中的元字符是:
^
(否定)-
(范围)]
(课程结束)- (转义字符)
所以这些都应该逃脱。但是,有些极端情况:
-
如果放在课程的开头或结尾([abc-]
或[-abc]
),则无需转义。在许多正则表达式实现中,当直接放在范围([a-c-abc]
)或简写字符类([w-abc]
)之后时,也无需转义。这就是你观察到的^
不在 类开头时不需要转义:[^a]
表示除以外的任何字符a
,并[a^]
匹配a
或^
,等于:[^a]
]
如果它是类中的唯一字符,则无需转义:[]]
匹配char]



