JAVA随笔系列01-->正则表达式使用

前言

   所有坚韧不拔的努力迟早会取得报酬的。

一、正则表达式是什么?

  • 描述了一种字符串匹配的模式(pattern)
  • 功能一:用来检查一个字符串串是否含有某种子字符串
  • 功能二:将匹配的子串(满足规则的字符串)进行替换
  • 功能三:从某个字符串中取出符合某个条件的子串
  • ......

二、正则表达式字符集介绍

2.1 正则表达式中的元字符

元字符 匹配内容说明
. 匹配除换行符以外的任意字符
\s 匹配任意的空白符
\d 匹配数字
^ 匹配字符串的开始
$ 匹配字符串的结束
\D 匹配非数字
\S 匹配非空白符
() 匹配括号内的表达式,也表示一个组
[] 匹配字符组中的字符
[^] 匹配除了字符组中字符的所有字符

2.2 正则表达式中的量词

量词 用法说明
  • |重复零次或更多次|
  • |重复一次或更多次|
    ? | 重复零次或一次|
    {n} |重复n次|
    {n,} |重复n次或更多次|
    {n,m} |重复n到m次|

三、java正则表达式使用实战

3.1 判断字符串是否满足正则表达式模版

import java.util.regex.Pattern;

public class RegDemo {
	public static void main(String[] args) {
		boolean value = Pattern.matches("\\d+","2223");   // "\\d+"字符模版 ,"2223" 源字符串
                System.out.println( value );
      }
}

3.2 正则表达式加强实例

import java.util.regex.Pattern;

public class RegDemo {
	public static void main(String[] args) {
                 String str = "a878678b";
		boolean value = Pattern.matches("a\\d+b",str);   // 满足 a开头  包含多个数字  b结尾的字符串
                System.out.println( value );
      }
}

3.3 利用正则表达式进行截取操作

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegDemo {
	public static void main(String[] args) {
                String str = "a123456789b";
		Pattern r = Pattern.compile("4(.+)6");  //字符模版对象
		Matcher m = r.matcher(str);  //匹配正则表达式对象
		m.find(); // 执行匹配操作
		System.out.println( m.group(1) ); // group()方法获取结果
      }
}

3.4 利用正则表达式进行多次截取操作

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegDemo {
	public static void main(String[] args) {
                String str = "a123456789b486aab496ccc";
		Pattern r = Pattern.compile("4(.+)6");  //字符模版对象
		Matcher m = r.matcher(str);  //匹配正则表达式对象
		while(m.find()){                          // 循环的方式匹配多项操作
		      System.out.println( m.group(1) );   // group()方法获取结果
                 }
      }
}

四、小结

  • 正则表达式操作需要掌握2个方面的知识:1、是正则表达式字符集的含义和规则 2、java代码中Pattern、Matcher类的操作
  • 上述由于篇幅原因,关于其它的正则表达式的应用读者可以根据我的例子去进行扩展
  • 笔者是因为最近给湖南师大的学生上实训需要讲一些 java 爬虫方面提高学生的学习兴趣扩展的一个知识点,刚好给学生讲完就分享下😊
posted @ 2021-01-06 16:05  蓝寅  阅读(145)  评论(0)    收藏  举报