java基础知识: day7-正则表达式

概念

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。(来自维基百科)

它几乎在所有语言都可以使用,包括但不限于java,JavaScript,c#等都有提供想对应的接口/函数来支持。

基础语法

元字符
符号 含义
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的介绍

例子:

1.匹配9个任意数字的字符串: \d\d\d\d\d\d\d\d\d
2.匹配aba开头,c结尾的字符串: ^aba.*c$
复制代码
限定符
符号 含义
+ 重复1次或者更多次(包含1次,多次)
* 重复0次或者更多次(包含0次,1次,多次)
? 重复0次或者1次(包含0次,1次)
{n} 重复n次
{n,} 重复n次或者更多次
{n,m} 重复n到m次(长度范围)

例子:

1.匹配9个任意数字的字符串: \d{9}
2.匹配aba开头,多个c结尾的字符串: ^abac*$
3.匹配银行卡号,14-18位数字: ^\d{14,18}$
复制代码
其他符
符号 含义
() 分组符
\ 转义符
| 表示或
[] 表示区间

例子:

1.匹配多个mar的字符串: ^(mar)*
2.匹配多个(mar)的字符串: ^(\(mar\))*
3.匹配13,15,17,18,19开头的手机号码: ^(13|15|17|18|19)\d{9}$
4.匹配1-3开头的11位数字: ^[1-3]\d{10}$
5.匹配13,15,17,18,19开头的手机号码: ^(13[0-9]|15[0-9]|17[0-9]|18[0-9]|19[0-9])\d{8}$
复制代码

转载于:https://juejin.im/post/5c9b19ed6fb9a070c02305c8

你可能感兴趣的:(java基础知识: day7-正则表达式)