查阅资料,得知matches方法有如下原型

(1)matches() 方法用于检测字符串是否匹配给定的正则表达式。

(2)调用此方法的 str.matches(regex) 形式与以下表达式产生的结果完全相同:

调用方法:Pattern.matches(regex, str)

参数:public boolean matches(String regex)

(regex – 匹配字符串的正则表达式)。

返回值:在字符串匹配给定的正则表达式时,返回 true。

实例
public class Test {
public static void main(String args[]) {
String Str = new String(“www.yt.com”);

System.out.print("返回值 :" );
    System.out.println(Str.matches("(.*)yt(.*)"));
    
    System.out.print("返回值 :" );
    System.out.println(Str.matches("(.*)google(.*)"));

    System.out.print("返回值 :" );
    System.out.println(Str.matches("www(.*)"));
}

}
以上程序执行结果为:

返回值 :true
返回值 :false
返回值 :true

要想深入了解matches方法,需要对正则表达式有较深理解

本学期我们学习了形式语言与自动机,正好可以结合相关知识进行分析

正则表达式,又称规则表达式,计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。
正则表达式的特点是:

  1. 灵活性、逻辑性和功能性非常强;
  2. 可以迅速地用极简单的方式达到字符串的复杂控制。
  3. 对于刚接触的人来说,比较晦涩难懂。

正则表达式语法规则相当复杂,以下是查阅到的资料
https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin#5

下面是我认为比较常用且比较重要的部分

一、能够与 ‘多种字符’ 匹配的表达式
正则表达式中的一些表示方法,可以匹配 ‘多种字符’ 其中的任意一个字符。比如,表达式 “\d” 可以匹配任意一个数字。虽然可以匹配其中任意字符,但是只能是一个,不是多个。

(1)\d 任意一个数字,0~9 中的任意一个
(2)\w 任意一个字母或数字或下划线,也就是 AZ,az,0~9,_ 中任意一个
(3)\s 包括空格、制表符、换页符等空白字符的其中任意一个
(4). 小数点可以匹配除了换行符(\n)以外的任意一个字符

二、自定义能够匹配 ‘多种字符’ 的表达式
使用方括号 [ ] 包含一系列字符,能够匹配其中任意一个字符。用 [^ ] 包含一系列字符,则能够匹配其中字符之外的任意一个字符。同样的道理,虽然可以匹配其中任意一个,但是只能是一个,不是多个。

表达式 可匹配
[ab5@] 匹配 “a” 或 “b” 或 “5” 或 “@”
[^abc] 匹配 “a”,“b”,“c” 之外的任意一个字符
[f-k] 匹配 “f”~“k” 之间的任意一个字母
[^A-F0-3] 匹配 “A”“F”,“0”“3” 之外的任意一个字符

三、使用方法是:“次数修饰"放在"被修饰的表达式"后边。比如:”[bcd][bcd]" 可以写成 “[bcd]{2}”。

表达式 作用
{n} 表达式重复n次,比如:"\w{2}" 相当于 “\w\w”;“a{5}” 相当于 “aaaaa”
{m,n} 表达式至少重复m次,最多重复n次,如:"ba{1,3}"可以匹配 “ba"或"baa"或"baaa”

{m,} 表达式至少重复m次,比如:"\w\d{2,}“可以匹配 “a12”,”_456",“M12344”…

? 匹配表达式0次或者1次,相当于 {0,1},比如:"a[cd]?"可以匹配 “a”,“ac”,“ad”

  • 表达式至少出现1次,相当于 {1,},比如:"a+b"可以匹配 “ab”,“aab”,“aaab”…
  • 表达式不出现或出现任意次,相当于 {0,},比如:"^*b"可以匹配 “b”,"^^^b"…

关于正则表达式内容太多,要想正确使用matches方法,还得在平时编程中多积累,应用。