正则表达式

前言

正则表达式基本内容

一.字符集

正则表达式中预定义了一些字符集,字符集能以简洁的方式表示一些由元字符和普通字符表示的匹配规则。

以下是字符集,在字符集中都支持unicode之内的字符,因此在中英文中用[0-9]表示数字,[A-Za-z]表示字母比较准准确。

.   匹配除\n\r的任意一个字符
\d  匹配一个数字,约等价[0-9],范围更大
\D  匹配一个非数字
\w  匹配一个字母数字下划线的单词字符,约等价[A-Za-z0-9_],范围更大
\W  匹配一个非单词字符
\s  匹配一个不可见字符
\S  匹配一个可见字符
\b  匹配单词的边界,匹配位置
\B  匹配单词的非边界

二.限定符

*   对前面的表达式匹配任意次
+   对前面的表达式匹配1次或多次
?   对前面的表达式匹配0次或一次
()  将之间的表达式定义为“组”(group),它们可以用 \1\9 的符号来引用。
	 (q)(w)\1\2 会匹配到qwqw
[]  匹配其中所包含的任一字符
{}  前面表达式的匹配次数
|   逻辑或运算
-   连字符,表示范围
^   从字符串头部开始匹配
$   从字符串结尾开始匹配

三.常用表达式

1.匹配位置

(pattern)  获取匹配的pattern值
下面四个都是非获取匹配,主要用来定位
(?=pattern) 正向肯定匹配  123(?=\.jpg) 指匹配.jpg之前的123
(?<=pattern) 反向肯定匹配  (?<=123)\.jpg 指匹配123后面的.jpg
(?!pattern) 正向否定匹配  123(?!\.jpg) 指不匹配.jpg之前的123
(?<!pattern) 反向否定匹配  (?<!123)\.jpg 指不匹配123后面的.jpg

2.分组引用

([A-Za-z])(\1)    (\1)获取第一个分组的值 ,匹配两个连续相同的字母
([A-Za-z])([A-Za-z])(\1)(\2)  ABAB类型字符
([\u4e00-\u9fa5])(\1)([\u4e00-\u9fa5])(\3)  AABB型成语

3.非贪婪模式

+ * {}默认是贪婪模式,加上?就会转化为非贪婪模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值