Java——定制小程序开发费用定制小程序开发费用正则表达式
定制小程序开发费用近来学习到了正则表达式,定制小程序开发费用在此整理以便理解。
1.定义:
正则表达式(regular expression)是一个字符串,可用于描述匹配一个字符串集合的模式,便于字符串的处理。可以使用正则表达式来进行匹配、替换和拆分字符串。
2.匹配字符串:
String类中的不仅可以匹配一个固定的字符串,还可以匹配符合一个模式的字符串集。
例如:(语句结果为true。)
其中“Java.*”即为正则表达式,它描述了一个字符串模式,即:以Java开始后面跟0个或多个字符串,其中,子字符串“.*”匹配0个或多个任意字符。
3.正则表达式语法:
正则表达式由字面值字符及所组成。下表中列举出了正则表达式的常用的语法。
表1:正则表达式常用语法
正则表达式 | 匹配 | |
1 | x | 指定字符x |
2 | . | 任意单个字符,换行符除外 |
3 | (ab|cd) | ab或者cd |
4 | [abc] | a、b、c |
5 | [^abc] | 除了a、b或者c以外的任意字符 |
6 | [a-z] | a到z |
7 | [^a-z] | 除了a到z以外的任意字符 |
8 | [a-e[m-p]] | a到e或m到p |
9 | [a-e&&[c-p]] | a到e与c到p的交集 |
10 | \d | 一位数字,等同于[0-9] |
11 | \D | 一位非数字 |
12 | \w | 单词字符 |
13 | \W | 非单词字符 |
14 | \s | 空白字符 |
15 | \S | 非空白字符 |
16 | p* | 0次或者多次出现模式p |
17 | p+ | 1次或者多次出现模式p |
18 | p? | 0次或者1次出现模式p |
19 | p{n} | 正好出现n次模式p |
20 | p{n,} | 至少出现n次模式p |
21 | p{n,m} | n到m(不包含)次出现模式p |
22 | \p{P} | 一个标点字符!”@#$%^&*()等 |
Ps1:反斜杠是一个特殊的字符,在字符串中开始转义序列。因此Java中需要使用\\来表示\。
Ps2:空白字符是" "、"\t"、"\"、"\r"、"\f",因此\s和[\t\ \f]等同,\S和[^\t\ \f]等同。
Ps3:单词字符是任何的字母,数字或下划线字符。因此\w等同于[a-z[A-Z][0-9]_]或者简化为[a-Za-z0-9]。
Ps4:可以使用括号来将模式进行分组。例如:(ab){3}匹配ababab,而ab{3}匹配abbb。
Ps5:表1中后面的六个条目*、+、?、{n}、{n,}以及{n,m}称为量词符(quantifier),用于确定量词符前面的模式会重复多少次。例如,A*匹配0或者多个A,A+匹配1或者多个A,A?匹配0或者1个A。A{3}精确匹配AAA,A{3,}至少匹配3个A,A{3,6}匹配3到6之间个A。*等同于{0,},+等同于{1,},?等同于{0,1}。
Warning:不要在重复量词符中使用空白。例如,A{3,6}不能写成逗号后有一个空白符的A{3, 6}。
常用案例构建正则表达式:
- 电话号码:以日常生活中的11位手机号为例
(xxx-xxxx-xxxx)
2.QQ邮箱:以10位QQ号为例()
参考资料:
梁勇. Java语言程序设计与数据结构基础篇[M]. 北京:机械工业出版社,2018.167-175