gpt4 book ai didi

java - java中split()和contains()之间使用正则表达式有什么区别

转载 作者:行者123 更新时间:2023-12-01 18:16:17 27 4
gpt4 key购买 nike

我正在研究 Java 中的正则表达式。在我做了一些阅读之后,我认为 | 是正则表达式中的特殊字符,但是当我尝试应用这两个函数时,我发现我可以直接在 contains 函数中使用 | , split 函数中的格式应为 \\| 。那么 apply regex 这两个函数有什么区别吗?

String c = "come|dra";
Pattern regex = Pattern.compile("|");
Matcher matcher = regex.matcher(c);

System.out.println(matcher.find()+" "+c.contains("|"));
String [] s1 = c.split("|");
System.out.println(s1[1]);

输出:

true true
c

最佳答案

请小心您所调用的方法。在您的示例代码中,您正在调用 String.contains()它不使用正则表达式。

Returns true if and only if this string contains the specified sequence of char values.

String 的某些方法 - 即 String.matches() , String.replaceAll() , String.replaceFirst() ,和 String.split() - 是正则表达式行为的便捷包装器 Pattern提供。例如,String.split() 只需*调用:

return Pattern.compile(regex).split(this, limit);

* 它实际上尝试在到达此行之前进行一些优化,但在一般情况下,这就是它所做的。

关于java - java中split()和contains()之间使用正则表达式有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29290208/

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