正则表达式中的点行为

itu*_*tun 3 java regex

Pattern p2 = Pattern.compile(".*");
Matcher m2 = p2.matcher("true");
System.out.println(m2.matches() + " [" + m2.group() + "]");
Run Code Online (Sandbox Code Playgroud)

当我使用上面的代码时,它是可以的.但是当我使用这个regexpr时,我不明白发生了什么[.]*.它打印false.

如何将点作为特定符号?或者如何使用没有\n和\ r \n的任何字符制作一类符号?

Nul*_*ion 7

但是当我使用这个regexpr [.]*时,我不明白发生了什么.它说我是假的.

因为在字符类中,点失去其特殊含义并且将匹配普通旧点(.字符).

在字符类之外,点是与任何字符匹配的元字符,不包括换行符(Pattern.DOTALL当然,除非使用修饰符).

或者如何使用没有\n和\ r \n的任何字符创建一类符号.

使用否定的字符类:

 Pattern p2 = Pattern.compile("[^\\r\n]*");
Run Code Online (Sandbox Code Playgroud)

[^\r\n]意思是"匹配任何不是 a \r或a的东西\n.