正则表达式

什么是正则表达式?

正则表达式是用来描述某种规则字符的表达式。

正则表达式也叫匹配模式(pattern),它是由一组特定的字符串组成的,通常用来匹配和替换文本的。


正则表达式的规则

正则表达式的字符分为两种:

普通字符: 代表自己本身含义的字符
元字符: 代表某种特定规则的字符

元字符

. [] [a-z] [^]

" . " 代表匹配任意个字符, 如:a或b或...

" [] " 代表匹配限定范围的单个字符,限定范围在中括号中,

如:[0123456789abcdefABCDEF]===>[0-9a-fA-F]

" [] " 中的 " - " 也是一个元字符,代表ASCII值连续的字符。

" [^] " 也代表一个字符组,但是是排除了后面字符的字符组。

eg1:
描述一个可以作为C语言标识的字符(下划线_ + 数字 + 大小写字母)
[_0-9a-zA-Z]
eg2:
[a-z][^a-z]为互补关系

/d /D /w /W /s /S

\d 匹配 单个 十进制 数字字符

\d 等价于 [0-9]

\D 匹配 单个 非十进制 数字字符

\D 等价于 [^0-9]

\w word 匹配 字母或数字或下划线

\w 等价于 [_0-9a-zA-Z]

\W 匹配 非字母或数字或下划线

\W 等价于 [^_0-9a-zA-Z]

\s 匹配 空白字符(换行、回车、水平/垂直制表符、换页)

\s 等价于 [\n\r\t\v\f]

\S 匹配 非空白字符

\S 等价于 [^\n\r\t\v\f]

匹配多个字符

正则表达式除了匹配单个字符还可以匹配多个(不确定个数)字符

+ 匹配一个或者多个先前字符(或模式)

eg
09+ ===> 09 099 0999 09999....

[0-9]+ ===> 0 1 123 1234 ....

* 匹配0个或多个先前的字符(或模式)

eg
09* ===> 0 09 099 0999 09999....
[0-9]+ ===> ""空串 0 1 123 1234 ...

? 匹配0个或一个先前字符(或模式)

eg
9? ==> "" 9
[0-9]? ==> "" 0 1 2 3 ... 9

{数字} 匹配固定数字的字符(或模式)

eg
88[0-9]{3} ==> 88000 88111 88123
//88是必须匹配的、在0-9中匹配三次

{最小数目,最大数目}

匹配至少“最小数目”到“最大数目”的先前字符(或模式)

{最小数目,}

匹配至少“最小数目”,上不封顶的先前字符(或模式)

() 作为一个整体,子模式

eg
(abc){1,3} ===> abc abcabc abcabcabc

(|) 二选一

eg
(abc|123){2}
===>
abc123
abcabc
123123
123abc
注意这里|两边分别是作为一个整体

转义元字符

在上面用到了.*? 等元字符,但是在匹配时难免有用到的时候,这时需要将其转义为普通字符

\加上一个元字符 ==> 元字符就不是元字符而是一个普通字符

eg
\* \. \? \\等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值