正则表达式,什么是正则表达式呢?
正则表达式(Regular Expression,简称RegEx)是一种用于匹配字符串中字符组合的模式。可以帮助我们对文本字符串进行搜索、替换、分割和校验等操作。
正则表达式并不是Java所独有的特性,而是一种强大且灵活的工具,任何语言都可以结合它来实现功能。最早是由Perl语言中发展来的。
为什么是对字符串来进行操作呢?因为String是一种很强大的类型,支持任何类型的转换,用字符串都可以表示这些类型。
正则表达式由普通字符(例如字母和数字)以及特殊字符(称为元字符)组成,这些元字符具有特殊的含义,用于指定模式匹配的规则。
普通字符就不说了,元字符有以下分类:
元字符
.:匹配除换行符之外的任意单个字符。
[]:匹配方括号内的任意一个字符(字符类)。
[^]:匹配不在方括号内的任意一个字符(否定字符类)。
\d:匹配一个数字字符,等价于 [0-9]。
\D:匹配一个非数字字符,等价于 [^0-9]。
\w:匹配一个单词字符(字母、数字或下划线),等价于 [A-Za-z0-9_]。
\W:匹配一个非单词字符,等价于 [^A-Za-z0-9_]。
\s:匹配任何空白字符(空格、制表符、换行符等)。
\S:匹配任何非空白字符。
限定符
*:匹配前面的子表达式零次或多次。
+:匹配前面的子表达式一次或多次。
?:匹配前面的子表达式零次或一次。
{n}:匹配前面的子表达式恰好n次。
{n,}:匹配前面的子表达式至少n次。
{n,m}:匹配前面的子表达式至少n次,但不超过m次。
定位符
^:匹配输入字符串的开始位置。
$:匹配输入字符串的结束位置。
分组和引用
(exp):匹配exp并捕获文本到自动命名的组里。
(?:exp):匹配exp但不捕获匹配的文本。
\n:引用编号为n的捕获组匹配的文本。
选择符
|:匹配两个或多个分支选择的任意一个。