正则表达式_概要

简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/53994968

标准字符集合

大/小写,大写时相反的意思
\d:任意一个数字0-9
\w:任意一个字母数字下划线
\s:空格、制表符、换行符
.:匹配任意一个换行符以外的符号,若要匹配所有用[\s\S]
转义字符: \

自定义字符集合

[2-8]: 2~8中的任意一个数字

1.特殊符号被包含到中括号中失去特殊含义除了^,-
2.标准字符集合,除小数点外,如果被包含于中括号,自定义字符集合将包含该集合

量词

修饰匹配次数
{n} : 重复n次
{m,n} : 至少重复m,之多重复n次
{m,} :至少重复m次
? : 匹配表达式0次或1次(0~1次)
+ : 至少1次
* : 0次或任意多次


1.只作用于前面的一个表达式,前面的多个表达式可以用()扩在一起,表示一个整体
2.默认贪婪模式,次数越多越好
3.非贪婪模式,在量词后加上?

字符边界

匹配的不是字符而是位置,符合某种条件的位置
^ 与字符串开始的地方匹配(例:^a)
(b)
b 匹配一个单词边界,前面的字符和后面的字符不全是\w

匹配模式

忽略大小写模式:
忽略大小写

单行模式:
整个文本看做一个字符串,只有一个开头和结尾。使用.(小数点)可以匹配包括换行符在内的任意字符

多行模式
使每一行都是一个字符串,每行都有开头和结尾
如果还想获得字符串的开头和结尾元素,可以用\A\Z (例:a\A b\Z)

选择符和分组

|:
():捕获组在被修饰匹配次数时,括号中的表达式可以作为整体被修饰。取匹配结果时,括号中的表达式匹配到的内容可以单独得到
(?:Exception):非捕获组,不保存()中子表达式匹配的内容,匹配后失效

反向引用(\num)

每一对()会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号,对分组已捕获的字符串进行引用。(按左括号数计数,起始编号为1)
如:

(a\d?b)\1

是两个ab之间有0/1的数字的结果拼接在一起:abab,a1ba1b

预搜索(零宽断言)

对位置的匹配

(?=exp):断言自身出现的位置后面能匹配exp
(?<=exp):断言自身出现的位置前面能匹配exp
(?!exp):断言自身出现的位置后面不能匹配exp
(?>!exp):断言自身出现的位置前面能匹配exp

满足exp表达式的结果不计入总结果中。
例:
ab(?=ab)
表示ab后面还有ab,即abab

实例:
固定电话: 0\d{2,3}-\d(7,9)
手机号: 1[35789]\d{9}
电子邮件:[\w-]+@[a-z0-9A-Z]+(.[a-zA-Z]){1,2}

固定电话的格式:
在国外拨打到中国的正确格式是:0086+当地区号+电话号码
在国内的拨打正确格式是:当地区号+电话号码
3位区号8位号码或者4位区号7位号码

相关文章
|
26天前
|
数据采集 自然语言处理 Unix
01. 正则表达式概述
01. 正则表达式概述
9 0
|
5月前
|
C++
正则表达式基础
正则表达式基础
|
9月前
|
算法 C语言 数据安全/隐私保护
【C++技能树】快速文本匹配 --正则表达式介绍与C++正则表达式使用
假设要判断一个QQ号是否有效,他必须满足以下三个规则
74 0
正则表达式 获取功能
使用正则表达式获取符合规则的子串
|
12月前
|
程序员
学好正则表达式,啥难匹配的内容都给我匹配上
学好正则表达式,啥难匹配的内容都给我匹配上
|
前端开发
前端学习案例1-正则概述-元字符
前端学习案例1-正则概述-元字符
53 0
前端学习案例1-正则概述-元字符
|
前端开发
前端学习案例2-正则概述-字符组和非字符组1
前端学习案例2-正则概述-字符组和非字符组1
57 0
前端学习案例2-正则概述-字符组和非字符组1
|
前端开发
前端学习案例3-正则概述-字符组和非字符组2
前端学习案例3-正则概述-字符组和非字符组2
52 0
前端学习案例3-正则概述-字符组和非字符组2
|
机器学习/深度学习 Linux Go