正则表达式入门

概念

正则表达式是一种模式语言。

基础语法

完整的正则表达式由两种字符构成。特殊字符(“元字符”)和其他普通字符。

元字符

^ 行的开始

实例意义
^cat匹配以c作为行的第一个字符,紧接一个a,紧接一个t的文本

$ 行的结束

实例意义
cat$匹配以t作为行的最后一个字符,其前面紧接一个a,紧接一个c的文本
^cat$匹配以一行只有cat的文本
^$匹配空行

[…](字符组)匹配若干字符

实例意义
gr[ea]y匹配grey or gray
[123456]匹配1-6中的任意一个字符
- (字符组内元字符)匹配范围
实例意义
[1-6]匹配1-6中的任意一个字符
[a-z]匹配a-z中的任意一个字符
[0-9A-Z_!.?]匹配一个数字,大写字母,下划线,感叹号,点号或者问号
^ (字符组内元字符) 非(排除)匹配
实例意义
[^1-6]匹配除1-6之外的所有字符

. 匹配任意字符

实例意义
123.567匹配123x567,其中x为任意字符

| 多选结构

实例意义
123|567匹配123或者567
12(3|5)67匹配12367或者12567

\< 和 \> 单词分界符

实例意义
\<cat\>匹配cat这个单词
\<cat匹配以cat为开头的单词
cat\>匹配以cat为结尾的单词

? 可选项元素

实例意义
color?匹配colo 或者 color
w(inton)?匹配w 或者winton

+ 重复元字符

实例意义
color+匹配color 或者 colorr 或者colorrr(可以有任意个r,但至少又一个)

* 重复元字符

实例意义
color*匹配colo 或者 color 或者colorrr(可以有任意个r,可以是0个)

{} 限定重复次数

实例意义
[a-zA-Z]{5}匹配长度为5的字母串
[a-zA-Z]{1,5}匹配长度为1到5的字母串

() 范围限定符,反向应用

范围限定
实例意义
w(inton)??的作用范围,限定子在括号上,匹配w 或者winton
反向引用(配合 \number 使用)
实例意义
([a-z])([0-9])\2\1匹配重复字串如 a00a,b99b.\2 表示第二个括号匹配到到内容,以此类推

\ 转义字符(即 需要将元字符当普通字符时,使用? 表示普通字符问号)

ps:Mac os 上,实际是\?才表示元字符,而?则表示普通字符,通过grep做当验证

一些特殊的元字符

\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束

普通字符

这个就没啥好说的了

实战案例

//匹配中文
^[\\u4e00-\\u9fa5]{0,}$

//非中文
^[^\\u4e00-\\u9fa5]{0,}$

//金额校验
^[0-9]+(.[0-9]{2})?$

//匹配时分秒
([01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d

结尾

看完这篇,我相信你已经和我一样,能够自己写简单的正则匹配了。但是冰冻三尺,非一日之寒,要想更熟练的掌握,必须在日常工作中实践, 希望有帮助到看到此文的同学,也欢迎大家进群讨论!
  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值