博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式_概要
阅读量:6335 次
发布时间:2019-06-22

本文共 1257 字,大约阅读时间需要 4 分钟。

版权声明:本文为博主原创文章,转载请注明出处。 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位号码

你可能感兴趣的文章
并查集的应用之求解无向图中的连接分量个数
查看>>
7个神奇的jQuery 3D插件
查看>>
在线浏览PDF之PDF.JS (附demo)
查看>>
波形捕捉:(3)"捕捉设备"性能
查看>>
AliOS Things lorawanapp应用介绍
查看>>
美国人的网站推广方式千奇百怪
查看>>
java web学习-1
查看>>
用maven+springMVC创建一个项目
查看>>
linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法
查看>>
redis知识点整理
查看>>
Hello World
查看>>
Spring3全注解配置
查看>>
ThreadLocal真会内存泄露?
查看>>
IntelliJ IDEA
查看>>
低版本mybatis不能用PageHeper插件的时候用这个分页
查看>>
javaweb使用自定义id,快速编码与生成ID
查看>>
[leetcode] Add Two Numbers
查看>>
elasticsearch suggest 的几种使用-completion 的基本 使用
查看>>
04-【MongoDB入门教程】mongo命令行
查看>>
字符串与整数之间的转换
查看>>