[学习笔记] Java正则表达式

正则表达式

正则表达式定义了字符串的模式,可以用于搜索、编辑或处理文本;

正则表达式使用字符串描述规则,并用于匹配字符串;

一个正则表达式其实就是一个描述规则的字符串,被正则表达式引擎用于匹配文本;

 

正则表达式是一套规则,可以用于任何语言;

Java提供内置的java.util.regex包用于支持正则表达式;

若正则表达式含有特殊字符,则需要用 \ 对其进行转义,在Java当中的字符串中 \ 要用 \\来表示;

 

匹配规则

正则表达式按照从左到右的顺序进行匹配;

 

匹配任意字符

在实际应用时,正则表达式用于进行模糊匹配,精确匹配由String.equals()就可以完成;

 

正则表达式语法

单个字符匹配规则

正则表达式 匹配字符
单个字符,如A 匹配指定字符,如A
\u#### 匹配指定的Unicode字符
. 匹配除\r和\n之外的任意一个字符
\d 匹配任意一个数字,0-9
\w 匹配任意一个字母、数字或下划线
\s 匹配空格或Tab键
\D 匹配非数字
\W 匹配非\w
\S 匹配非空格或Tab键(\t)
\f 匹配换页符
\n 匹配换行符
\r 匹配回车符
\t 匹配垂直制表符

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

匹配多个字符

正则表达式 匹配字符
A* 匹配任意个数的字符
A+ 至少匹配一个字符
A? 匹配0个或1个字符
A{n} 匹配指定的n个字符
A{m,n} 匹配指定范围内个数的字符
A{n,} 至少匹配n个字符

 

 

 

 

 

 

 

 

 

 

 

 

复杂的匹配规则

在其他语言中,要在正则表达式中插入一个反斜杠 \, 只需要用 \ 表示即可,而在Java中,需要两个反斜杠 \\ 才能表示一个反斜杠 \;

根据Java语言规范,Java源代码的字符串中的反斜杠被解释为Unicode转义或其他字符转义,因此必须在字符串字面值中使用两个反斜杠,表示正则表达式受到保护,不被Java编译器解释;

正则表达式 匹配字符
\ 用于转义字符,将下一个字符标记为特殊字符、文本等
^ 用正则表达式进行多行匹配时,^ 表示字符串开始的位置
$ 用正则表达式进行多行匹配时, $ 表示字符串结束的位置
? 在正则表达式的规则后加上?表示采用非贪婪匹配模式(相比于默认的贪婪匹配模式尽可能长的匹配字符串,非贪婪模式会尽可能短的匹配字符串)
A|B 用|连接两个正则表达式,表示A或B
[ABC] 将所有符合条件的字符都列在方括号内组成一个字符集,匹配任何一个在字符集当中的字符,即匹配A或B或C
[^ABC] 将^放在字符集的开头表示一个反向字符集,即匹配A或B或C以外的字符
[a-z] 由于在字符集当中列出所有要匹配的字符比较麻烦,可以使用字符范围的形式来对字符集进行简化
[^a-z] 为了简化反字符集,也可以使用指定范围字符

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分组匹配

在正则表达式中,可以使用括号(pattern)将子规则括起来表示匹配pattern及其子表达式;

括号还可以用于进行分组匹配,把要匹配的规则用括号进行分组可以方便后续对子字符串的提取;

 

posted @   糖小豆  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示