gpt4 book ai didi

java - 正则表达式模式中的点行为

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:35:43 24 4
gpt4 key购买 nike

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

当我使用上面的代码时就可以了。但是我不明白当我使用这个正则表达式 [.]* 时发生了什么。它打印出 false

如何让一个点成为一个特定的符号?或者如何用不带\n 和\r 的任何字符制作一类符号?

最佳答案

But I don't understand what is going on when I use this regexpr [.]*. It says me false.

因为在 character class 里面, 点失去了它的特殊意义,将匹配一个普通的旧点(. 字符)。

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

Or how to make a class of symbols with any characters without \n and \r.

使用否定的字符类:

 Pattern p2 = Pattern.compile("[^\\r\n]*");

[^\r\n] 表示“匹配任何 \r\n.

关于java - 正则表达式模式中的点行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7494846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com