栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

正则表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

正则表达式

正则表达式

一 . 定义

正则表达式(regular expression)是一个字符串,用来描述匹配一个字符串集合的模式。

二.元字符

代码

匹配说明

.

匹配除换行符以外的任意字符

w

匹配单词字符

s

匹配空白字符

d

匹配数字

b

匹配单词的开始或结束

^

匹配字符串的开始

$

匹配字符串的结束

注:单词字符是任何的字母,数字或者下划线字符。

三.反义字符

语法

匹配说明

W

非单词字符

S

非空白字符

D

非数字字符

B

不是单词开头或结束的位置

[^X]

除了x以外的任意字符

[^abc]

除了a,b或者c以外的任意字符

四.量词符

语法

说明

举例

*

重复零次或更多

aaaa匹配”a*”

+

重复一次或更多

a匹配”a+b*”

?

重复零次或一次

Java匹配”J?Java”

{n}

重复n次

Java匹配”Ja{1}”

{n,}

重复n次或更多次

aaaa匹配”a{1, }”

{n,m}

重复n到m次

aaaa匹配”a{1,9}”

注:1. *等同于{0,}  +等同于{1,}  ?等同于{0,1}

2.不要在重复量词符中使用空白。 A{3,6}不能写成A{3, 6}

3.任何字符串匹配正则表达式”.*”

五.转义字符

六.字符分枝

字符分枝多用于满足不同情况的选择,用“|”将不同的条件分割开来,比如有些固定电话区号有三位,有些有四位,这个时候可以采用字符分枝

例如:d{3}-d{8}|d{4}-d{8}  可以匹配两种不同长度区号的固定电话

七.字符分组

字符分组多用于将多个字符重复,主要通过使用小括号()来进行分组

形如:(dw){3} 重复匹配3次(dw)

例如,(ab){3}匹配ababab,但是ab{3}匹配abbb

八.常见正则表达式

正则表达式

匹配

示例

(ab|cd)

ab或者cd

ten匹配t(en|im)

[abc]

a,b或者c

Java匹配

Ja[uvnm]a

[a-z]

a到z

Java

匹配[A-M]av[a-k]

[^a-z]

除了a到z外的任意

字符

Java匹配Jav[^b-d]

[a-e[m-p]]

a到e或者m到p

Java 匹配[A-

G[I-M]]av[a-d]

[a-e&&[c-p]]

a到e与c到p的交集

Java 匹配[A-

P&&[I-M]]av[a-d]

p{p}

一个标点字符

J?a匹配”Jp{p}a”

九.构建正则表达式

1.

社会安全号



2.

验证手机号码



3.

验证身份证号(18位)



4.

验证QQ号(从10000开始)



5.

验证邮箱



十.替换和拆分字符串

1.

replaceAll:替换和拆分所有的字符串



2.

replaceFirst:替换第一个匹配的字符串



3.

split(regex):使用匹配的分隔符将一个字符串拆分为子字符串



4.

split(regex,limit) limit参数确定匹配模式多少次

如果limit<=0,split(regex,limit)等同于split(regex)



十一.懒惰匹配和贪婪匹配

贪婪匹配:正则表达式中包含重复的限定符时,通常的行为是匹配尽可能多的字符。

懒惰匹配:匹配尽可能少的字符。

默认情况下,所有的量词符都是贪婪的。可以通过在后面添加问号来改变量词符的默认行为。

例如:第一个匹配成功的是aaa,第二个匹配成功的是a





转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781337.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号