正则表达式
正则表达式定义了字符串的模式,可以用于搜索、编辑或处理文本;
正则表达式使用字符串描述规则,并用于匹配字符串;
一个正则表达式其实就是一个描述规则的字符串,被正则表达式引擎用于匹配文本;
正则表达式是一套规则,可以用于任何语言;
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及其子表达式;
括号还可以用于进行分组匹配,把要匹配的规则用括号进行分组可以方便后续对子字符串的提取;
Original: https://www.cnblogs.com/cloudyzcy/p/16315391.html
Author: 糖小豆
Title: [学习笔记]Java正则表达式
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/713015/
转载文章受原作者版权保护。转载请注明原作者出处!