Java 为什么方括号内的点不';不匹配任何字符?

Java 为什么方括号内的点不';不匹配任何字符?,java,regex,Java,Regex,为什么这个[.]+Java正则表达式与我的“foo”文本不匹配,而+却完全匹配(经过测试)?[.]相当于转义(点)字符,即\ 一旦角色出现在中,它将失去作为特殊角色的状态 由于foo不包含任何点,因此没有匹配项+是一个通配符贪婪表达式,它匹配所有内容。您有相关链接吗?我总是用方括号表示范围,而不是转义。“记住点不是字符类中的元字符,所以我们不需要用反斜杠转义。”——@yegor256括号表示“字符类”,它可以包含字符范围,但是大多数字符都是在字符类中逐字解释的——除非它们本身被转义——我建议从S

为什么这个
[.]+
Java正则表达式与我的
“foo”
文本不匹配,而
+
却完全匹配(经过测试)?

[.]
相当于转义
(点)字符,即
\

一旦角色出现在中,它将失去作为特殊角色的状态


由于
foo
不包含任何点,因此没有匹配项<另一方面,code>+是一个通配符贪婪表达式,它匹配所有内容。

您有相关链接吗?我总是用方括号表示范围,而不是转义。“记住点不是字符类中的元字符,所以我们不需要用反斜杠转义。”——@yegor256括号表示“字符类”,它可以包含字符范围,但是大多数字符都是在字符类中逐字解释的——除非它们本身被转义——我建议从StephenC链接的javadoc学习正则表达式(我从那里学到了我所知道的大部分内容):注意,字符类内部的元字符集实际上与字符类外部的元字符集不同。例如,正则表达式
在字符类中失去了它的特殊意义,而表达式-变成了一个范围形成元字符。@yegor256 Java正则表达式的另一个奇妙之处是它将
[
]
都视为字符类中的特殊字符,要求两个都转义以逐字解释-大多数其他正则表达式只将
]
视为特殊字符。谢谢Java!