点必须在正则表达式的字符类(方括号)中转义吗?


95

.正则表达式中的点与任何单个字符匹配。为了使正则表达式匹配点,必须对点进行转义:\.

已经向我指出,方括号内[]的点不必逃脱。例如,表达式: [.]{3}将匹配...字符串。

真的吗?如果是这样,对所有正则表达式标准都适用吗?


是的,DOT(和大多数其他特殊字符)不需要在字符类中转义。
anubhava 2013年

3
正则表达式语法没有“标准”。
BoltClock

3
@BoltClock有一些:posix,posix扩展,perl。参见en.wikipedia.org/wiki/Regular_expression#Standards
Dariusz,

1
@Dariusz是因为您认为我错了而对我投反对票的人吗?如果是这样,我想把我的2分还给我:)
Paul Samsotha

@peeskillet是的,我已经纠正了。谢谢,抱歉。
Dariusz

Answers:


134

在字符类(方括号中)的任何字符的情况除外^-]\是文字。

该网站是一个出色的参考,并提供了许多有关不同正则表达式风味的细微差别的信息。 http://www.regular-expressions.info/refcharclass.html


3
这实际上取决于语言的处理方式,但是对于大多数语言而言,这是正确的。
Patrick Oscity

40
-如果它是最后一个值,它也是字面值
CONvid19,2016年

16
如果不是第一个字符,^就是字面意思
Nigel B. Peck

1
如果$看起来像一个变量,则还需要对其进行转义。例如:[$。]
W3Coder

1
@PedroLobito如果是第一个,我想
蒂姆·马隆
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.