java正则表达式语法

java正则表达式语法

这里简单总结一下我对java里的正则表达式一部分语法的学习

一、

普通字符
字母、数字、汉字、下划线,以及其他没有特殊含义的字符都可作为正则表达式匹配他们本身。例如正则表达式“d”就匹配字符串中所有的字符“d”
简单的转义字符
\n :匹配字符串中的换行符
\t :匹配制表符
\^、\$、\)等:匹配^、$、)这些字符本身。因为这些字符在正则表达式里有特殊含义,不能直接用于匹配自身。

二、标准字符集合

可与"多种字符"(同类的)匹配
\d:匹配任意一个数字,即0-9中的任意一个。注意这里如果不加修饰只会匹配一位数字,即一个字符,后面的几个也类似。
\w:任意一个字母和或数字或下划线
\s:任意一个空白字符(回车、制表符、空格等)
. : 匹配除换行符之外的任意字符。

三、自定义字符集合

[ ]:匹配方括号中的任意一个字符。例如:[abc]匹配"a"或“b”或“c”。注意,如果方括号后不加修饰,待匹配的字符串里只要出现里面的其中一个字符就算匹配成功。
^:表示取反。[^abc]匹配除"a"、“b”、“c”之外的所有字符。
-:表示范围,[a-z]即表示匹配26个字母之一。

四、量词

用于修饰匹配次数的特殊符号
{n} : 表示表达式要重复n次。例如"\d{2}“就是匹配两个连续的数字,“dw12sd”中"12"会被匹配。
{n,m}:表示表达式至少重复n次,最多重复m次
例如用”\d{3,5}“去匹配“sad2313s434fre123456”会匹配到“2313”与“434”,但不会匹配到"123456”(重复了6次)
{m,}表达式至少重复m次,上不封顶。
?:相当于{0,1}
+:相当于{1,}
*:相当于{0,}
注意,这些符号与表达式之间、符号的各个部分之间是没有空格的。
这里还有一件事,如果想用正则表达式匹配字符串的某个部分然后取出,例如用"\d{3,5}"匹配并提取字符串“12351”中的某部分,这里会将“12351”全部提取出来,而不是其他结果。因为在默认情况下匹配是“贪婪模式”,即将匹配的字符越多越好。如果不想这样,在修饰次数的后面加“?”即可,这样会匹配尽可能少的字符数。

五、字符边界

下面的这几个符号只匹配位置,不配字符。
^:修饰一个正则表达式,表示在字符串开始处匹配。例如"^\d"即表示匹配字符串开头的一个数字。
$:表示从字符串结尾的地方匹配。
\b:匹配单词的边界,这个位置两边不都是"\w"集合中的字符。例如“abc_d e3df g”中的‘a’、‘d’、‘e’、‘f’、‘g’都是这个位置

六、选择与分组

“|”分支结构,即表示“或”。例如"\d | \t"即表示匹配一个数字或一个制表符。
():普通捕获组。从正则表达式左侧开始,每出现一个"(“就记一个分组,分组编号从1开始,0代表整个表达式。例如对于一个时间字符串“2019-06-24”,正则表达式”(\d{4})-((\d{2})-(\d{2}))"有4个括号,所以有四个分组:

编号捕获组匹配
0(\d{4})-((\d{2})-(\d{2}))2019-06-24
1(\d{4})2019
2((\d{2})-(\d{2}))06-24
3(\d{2})06
4(\d{2})24

参考资料:尚学堂 2018 java300集教学视频
https://blog.csdn.net/just4you/article/details/70767928

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值