正则表达式的了解及使用

一种用于匹配字符串的文本模式(规则)

本文参考3W学习方法来叙述内容。

一、What

1、什么是正则表达式?

正则表达式(Regular Expression),用来描述各式各样的字符串的文本模式(排列规则),以便操作字符串。

二、Why

1、掌握了正则表达式主要能干什么?

  • 常见操作系统中的文件系统都支持正则匹配,比如windows的文件夹窗口的搜索,可以通过正则表达式描述文件名来快速搜索文件
  • 编程语言中优雅且高效操作字符串

三、How

1、怎样学习正则表达式?

  • 掌握基础语法
  • 掌握常见应用场景

2、基础语法

正则表达式由多个“表达式”+“限定符”组合而成,首先区分掌握几类字符:

  • 表达式结构字符(基本书写符号)
  • 限定符
  • 预定义字符集(匹配字符集)
    不同语言的正则表达式语法:
  • JavaScript: /正则表达式主体/修饰符(可选)
2.1、表达式结构字符
  • 转义符
    • 符号: \
    • 示例:“*”,因为本身为正则表达式中的限定符(类似编程语言中的保留字),,"“表示转义匹配”"
  • 可接收的字符列表
    • 符号:[]
    • 示例:[abc],匹配a、b、c中的任意1个字符
  • 不接收的字符列表
    • 符号:[^]
    • 示例:[^abc],匹配除a、b、c之外的任意1个字符
  • “|”之前或之后的表达式
    • 符号:|
    • 示例:ab|cd,匹配ab或cd
  • 将子表达式分组
    • 符号:()
    • 示例:(abc),匹配“abc”字符串
  • 区间连字符或者数字中的负号
    • 符号:-
    • 示例:A-Z,任意单个大写字母
2.2、限定符
  • 指定字符重复0次或n次
    • 符号:*
    • 示例:(abc)*,匹配任意个“abc”字符串
  • 指定字符重复1次或n次
    • 符号:+
  • 指定字符重复0次或1次
    • 符号:?
  • 指定字符重复为n次
    • 符号:{n}
    • 示例:[asdf]{3},匹配asdf中字母组成的长度为3的字符串
  • 指定字符至少重复为n次
    • 符号:{n,}
    • 示例:[asdf]{3,},匹配asdf中字母组成的长度不小于3的字符串
  • 指定字符至少重复为n次、不多于m次
    • 符号:{n,m}
    • 示例:[asdf]{3,6},匹配asdf中字母组成的长度为3至6之间的字符串
  • 指定字符起始位置
    • 符号:^
  • 指定字符结束位置
    • 符号:$
2.3、预定义字符集
  • 匹配除 \n 以外的任何字符
    • 符号:.
  • 匹配单个数字字符,相当于[0-9]
    • 符号:\d
  • 匹配单个非数字字符,相当于[^0-9]
    • 符号:\D
  • 匹配单个数字、大小写字母字符,相当于[0-9a-zA-Z]
    • 符号:\w
  • 匹配单个非数字、大小写字母字符,相当于[^0-9a-zA-Z]
    • 符号:\W

3、常见场景

3.1、匹配非负整数
^\d+$
3.2、匹配正整数
^[0-9]*[1-9][0-9]*$
3.3、匹配非正整数
^((-\d+)|(0+))$
3.4、匹配邮箱
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
3.5、匹配URL
^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$

参考链接:http://www.51gjie.com/java/761.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值