【项目实训】Pattern类的使用

时间:2025-02-15 12:03:54

Pattern用法

Java正则表达式通过包下的Pattern和Matcher类实现

Pattern类用于创建一个正则表达式,也可以说是创建一个匹配模式,可以通过两个静态方法创建:compile(String regex)和compile(String regex,int flags),其中regex是正则表达式,flags为可选模式(如:Pattern.CASE_INSENSITIVE 忽略大小写)
实例:

Pattern pattern = Pattern.compile("Java");
// 返回此模式的正则表达式即Java
System.out.println(pattern.pattern());
  • 1
  • 2
  • 3

Pattern类还有两个根据匹配模式拆分输入序列的方法:split(CharSequence input) 和split(CharSequence input, int limit),其中limit为返回元素的个数。

实例:

Pattern pattern = Pattern.compile("Java");
String test="123Java456Java789Java";
String[] result = pattern.split(test);
for(String s : result)
System.out.println(s);
  • 1
  • 2
  • 3
  • 4
  • 5

结果:

123
456
789
  • 1
  • 2
  • 3

再细说一下split(CharSequence input, int limit),当limit值大于所能返回的字符串的最多个数或者为负数,返回的字符串个数将不受限制,但结尾可能包含空串,而当limit=0时与split(CharSequence input)等价,但结尾的空串会被丢弃。

Pattern pattern = Pattern.compile("Java");
String test = "123Java456Java789Java";

String[] result = pattern.split(test,2);
for(String s : result)
System.out.println(s);

result = pattern.split(test,10);
System.out.println(result.length);

result = pattern.split(test,-2);
System.out.println(result.length);

result = pattern.split(test,0);
System.out.println(result.length);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

运行结果:

123
456Java789Java
4
4
3
  • 1
  • 2
  • 3
  • 4
  • 5

Pattern类也自带一个静态匹配方法matches(String regex, CharSequence input),但只能进行全字符串匹配并且只能返回是否匹配上的boolean值

实例:

String test1 = "Java";
String test2 = "Java123456";

System.out.println(Pattern.matches("Java",test1));//返回true
System.out.println(Pattern.matches("Java",test2));//返回false
  • 1
  • 2
  • 3
  • 4
  • 5