JavaSE基础-----[正则表达式的介绍及基本用法]
2021/5/6 22:55:14
本文主要是介绍JavaSE基础-----[正则表达式的介绍及基本用法],对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
正则表达式
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式也就是一种模式匹配的语法;由特定的字符组成;每种字符匹配一种规则;使用这些字符进行匹配某个字符串;判断字符串是否满足于需求.
应用场景
在实际应用中;从各种终端向程序中输入数据时,需要对输入的数据格式进行验证;
几个基本字符的使用
首先找到String类中的matches( )判断方法;利用这个方法来进行正则表达式的学习;
即方法public boolean matches(String regex);
由设定的正则表达式,对字符串中的内容进行判断,返回一个布尔值.
//写个字符串进行演示; String s="12345abc"; //public boolean matches(String regex) //由设定的正则表达式,对字符串中的内容进行判断,返回一个布尔值 //例如这个 \d 是匹配数字字符的表达式, boolean a=s.matches("\\d"); //由于s中包含abc,返回false System.out.println(a);//false
- \
解释:将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,"\n"匹配\n。"\n"匹配换行符。序列"\“匹配”“而”(“则匹配”("。即相当于多种编程语言中都有的"转义字符"的概念。
- ^
匹配输入字行首。如果设置了RegExp对象的Multiline属性,^也匹配"\n"或"\r"之后的位置。
- $
匹配输入行尾。如果设置了RegExp对象的Multiline属性,$也匹配"\n"或"\r"之前的位置。
- .
匹配除"\n"和"\r"之外的任何单个字符。要匹配包括"\n"和"\r"在内的任何字符,可以使用像"[\s\S]"的模式。
- \ d
匹配数字字符;[0-9]之间的.
这里有几个字符是进行匹配规定写的某个匹配字符出现几次的;
X表示进行的字符匹配;
- 问号? 允许出现一次或者一次都没有
//? 允许出现一次或者一次都没有 String s1="1234"; boolean a1=s1.matches("\\d?"); //这里出现了4次数字字符,则false System.out.println(a1);//false
- 星号* 允许出现零次或者多次
//* 允许出现零次或者多次 String s2=""; boolean a2=s2.matches("\\d*"); //这里出现了0次数字字符,则true System.out.println(a2);//true
- 加号 + 允许出现一次或者多次
//+ 允许出现一次或者多次 String s3=""; boolean a3=s3.matches("\\d+"); //这里出现了零次数字字符,则false System.out.println(a3);//false
- {n} 恰好出现n次
//{n}恰好出现n次 String s4="12341"; boolean a4=s4.matches("\\d{5}"); //这里恰好出现了5次数字字符,则true System.out.println(a4);//true
- {n,} 至少出现n次
//{n,} 至少出现n次 String s5="1234"; boolean a5=s5.matches("\\d{6,}"); //这里出现了4次数字字符,则false System.out.println(a5);//false
- {n,m} 至少出现n次,但是不能超过m次
//{n,m} 至少出现n次,但是不能超过m次 String s6="12345678"; boolean a6=s6.matches("\\d{6,8}"); //这里出现了8次数字字符,则true System.out.println(a6);//true
数字字符也可用区间进行匹配;
例如:
- [0-5] 表示仅能输入0-5的数字
//[0-5] 表示仅能输入0-5的数字 String s7="00055655"; boolean a7=s7.matches("[0-5]*"); //这里出现了数字6;则不匹配 System.out.println(a7);//false
- [527] 表示仅能输入2,5,7这三个数字;
//[527] 表示仅能输入2,5,7这三个数字; String s8="2225572"; boolean a8=s8.matches("[527]*"); System.out.println(a8);//true
- [^527] 表示不允许输入这几个数字;
//[^527] 表示不允许输入这几个数字; String s9="asdfg014"; boolean a9=s9.matches("[^527]*"); //这里没有包含2,5,7三个数字,则匹配; System.out.println(a9);//true
非数字字符的匹配
- \D 表示非数字字符;等价于[^0-9]。grep要加上-P,perl正则支持
空白和非空白字符的匹配
- \s
匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
- \S
匹配任何可见字符。等价于[^ \f\n\r\t\v]。
空白字符分类那几个;
- \t
匹配一个制表符。等价于\x09和\cI。
- \f
匹配一个换页符。等价于\x0c和\cL。
- \n
匹配一个换行符。等价于\x0a和\cJ。
- \r
匹配一个回车符。等价于\x0d和\cM。
- \v
匹配一个垂直制表符。等价于\x0b和\cK。
单词字符和非单词字符
- \w
匹配包括下划线的任何单词字符。类似但不等价于"[A-Za-z0-9_]",这里的"单词"字符使用Unicode字符集。
- \W
匹配任何非单词字符。等价于"[^A-Za-z0-9_]"。
常用运算符与表达式:
-
^ 开始
-
( ) 域段
-
包含,默认是一个字符长度
-
[^] 不包含,默认是一个字符长度
-
{n,m} 匹配长度
-
. 任何单个字符
-
| 或
-
\ 转义(例如" \ \ d")
-
$ 结尾
-
[A-Z] 26个大写字母
-
[a-z] 26个小写字母
-
0-9] 0至9数字
-
[A-Za-z0-9] 26个大写字母、26个小写字母和0至9数字
-
, 分割
这篇关于JavaSE基础-----[正则表达式的介绍及基本用法]的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南