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 爬虫方面提高学生的学习兴趣扩展的一个知识点,刚好给学生讲完就分享下😊
超全面的测试IT技术课程,0元立即加入学习!有需要的朋友戳:
腾讯课堂测试技术学习地址
作者:蓝寅
出处:https://www.cnblogs.com/dream66/
欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。
腾讯课堂测试技术学习地址
作者:蓝寅
出处:https://www.cnblogs.com/dream66/
欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

浙公网安备 33010602011771号