【笔记】正则表达式[1]

元字符

符号

意思

示范

详例

\d

任意一个数字

\d{2}-\d{8}

22-12345678

*

*前的符号重复任意次数

次数可以为零

\d*

222222222222...

2

\s

任意的空白符

全半角空格,tab,换行符

\bhi\b\s\bLucy\b

hi

Lucy

+

和*用法相似

次数>=1

\d+

22

2222

\w

匹配任何单词字符串

等价于[A-Z a-z 0-9]

\d{2}\w\s\d{6}

22h 222222

222 222222

22_ 222222

^

匹配行的开始

^\d{2}

匹配元:wwwwww22wwwwwww

匹配结果:22

$

匹配行的结束

[a-z]{2}$

匹配元:2222222kfjda999999999

匹配结果:kf

?

重复0或1次

^2?$

匹配元:6dfadfhah22222jdfkajldkf9

匹配结果:22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分枝条件  | 符合 

稍微知晓编程的人都懂得,|符号的意思是或。

0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)

但是也要注意分支条件的顺序

例如:

美国就邮政编码是5位数字或5位数字-4位数字

因此就可以用\d{5}-\d{4}|\{5}进行匹配

但是如果写成\d{5}|\d{5}-\d{4}|

那么就只会匹配5位的邮编(以及9位邮编的前5位)

反义

代码/语法说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

分组

我们可以对某个单词进行重复匹配,那么对一组字符串又该如何重复匹配呢??我们可以在需要匹配的正则外面加上小括号加以分组。

比如:

(\d{3}.){3}\d{4},这个表达式就能匹配出173.169.111.9999

 

posted @   のんきネコ  阅读(339)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示