初学正则表达式

初学正则表达式,对一堆乱码似的东西进行初步了解后,结合书本和大佬的文章归纳如下:

一、正则表达式(regex是一个字符串),用来描述匹配一个字符串集合的模式。可用于匹配、替换和拆分字符串。

二、基本元素
1.字符

字符含义举例
.任意单个字符,除换行符外Java 匹配 J..a
[ ]匹配括号中任意一个字符[abc]d 匹配 ad 或者 bd 或者 cd
^位于 [ ] 的开头,匹配除了括号中字符外的任意字符 Java 匹配 Ja[^ars]a
-在 [ ] 内表示字符范围

[a-zA-Z0-9_] 表示任意数字、字母或下划线字符,即 

单词字符

由以上可推一些正则表达式:

正则表达式含义举例
[^a-z]除了a到z以外的任意字符Java 匹配 Jav[^b-d]
[a-e[m-p]]a到e 或者 m到pJava 匹配 [A-G[I-M]]av[a-d]
[a-e&&[c-p]]a到e 与 m到p 的交集Java 匹配 [A-P&&[I-M]]av[a-d]

2.量词符

字符含义举例
*p*:0次或多次 出现模式p

abab 匹配(ab)*

[0-9][0-9]*匹配至少一位数字

+p+:1次或多次 出现模式p

a 匹配" a+b* "

able 匹配” (ab)+.* "

p?:0次或1次 出现模式p

Java 匹配" J?Java "

ava 匹配" J?ava"

{n}

p{n}:正好出现 n次 模式p

注意不能使用空白

Java 匹配" Ja{1}.* "

Java 不匹配" .{2}  "

{n,}

p{n,}:至少出现 n次 模式p

注意不能使用空白

aaaa 匹配 " a{1,} "

a 不匹配 " a{2,} "

{n,m}

p{n,m}:n到m(不包括)次出现模式p

注意不能使用空白

abb 不匹配 " a{2,9}bb "

注意:可以用括号来分组。例如 (ab){3} 匹配ababab,ab{3} 匹配abbb。

3.字符集

符号含义举例
\d一位数字,等同于[0-9]Java2 匹配 " Java[\\d] "
\D一位非数字$Java 匹配 " [\\D][\\D]ava "
\w单词字符 [a-zA-Z0-9_]Java1 匹配 " [\\w]ava[\\d] "
\W非单词字符 [^a-zA-Z0-9_]$Java 匹配 " [\\W][\\w]ava "
\s空白字符"Java 2" 匹配 "Java\\s2"
\S非空白字符Java 匹配 " [\\S]ava "

单词字符(\w):任何字母、数字或下划线字符。

三、替换和拆分字符串

 

 

 

四、一些示例:

1. 偶数:[\\d]*[02468]    例如:"123".matches("[\\d]*[02468] ") returns false.

2. 电话号码(xxx)xxx-xxxx 第一位数字不能为0 :\\([1-9][\\d]{2}\\)[\\d]{3}-[\\d]{4}

3. 标识符:*以字母、下划线或美元符号开始,不以数字开头。

                  *由字母、数字、下划线和美元符号组成。

                  [a-zA-Z_$][\\w$]*

4.任意字符串:.*

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值