首页 > 其他 > 详细

正则表达式使用总结

时间:2020-01-06 22:34:54      阅读:90      评论:0      收藏:0      [点我收藏+]

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。关于正则的学习首先要了解一些基本概念,普通字符,量词,字符边界,选择符和分组,预搜索 。

普通字符

\  表示转义字符
\n 换行符 \t制表符 \表示 \ 本身
\d 表示 0-9 任意一个数字
\w A-Z a-z 0-9 任意一个
\s 空格,制表符 换行符 任意一个
.  匹配任意一个字符除了换行符
[] 中括号内部为自定义字符集,
在[]内部使用^表示除了所给定的规则以外的任意字符
比如[^abc] 表示取除了abc意外的任意字符
[a-z]表示取a到z之间的任意一个字符,0-9 同理
注意之间的组合使用
正则表达式中的特殊符号如果被包括到[ ]则没有任何意义除了^ –

量词

普通字符后面跟量词来修饰
\d{6}
{m} 表示重复m次
{m,n} 表示最少m次,最多n次
{m,} 至少m次
?{0,1} 表示0次或者1次
+{1,} 至少出现1次
*{0,} 出现n次或者不出现
匹配次数:贪婪模式(匹配次数越多越好) 非贪婪模式(匹配次数越少越好)

字符边界

^ 与字符串开始的地方匹配
$ 与字符串结束的地方匹配
\b 匹配一个单词边界 前面的字符和后面的字符不全是\w
匹配模式:
IDNORECASE 忽略大小写模式,默认区分大小写
SIGNLELINE 单行模式 把整个文本看成一个字符串只有一个开头结尾
MULTILINE 多行模式 每行都是一个字符串 匹配开始结束位置,用\A和\Z

选择符和分组

| 表达式 分支结构 左右两边表示或者,匹配左边或者右边( ) 捕获组:
1.在被修饰匹配次数的时候,括号中的表达式可以被作为整体修饰
2.取匹配结果的时候,在括号中的表达式匹配的内容可以被单独得到
3.每一对括号会分配一个编号,使用()捕获的根据左括号的顺序从1开始自动编号
捕获元素为0的第一个捕获是由整个正则表达式模式匹配的文本
(?:Expression)一些表达式中不能使用(),但又不需要保存在()中子表达式
匹配的内容,这时可以用非捕获组来抵消使用()带来的副作用
反向引用(\nnn)通过反向引用可以对已捕获的字符串进行引用 n为数字

预搜索(零宽断言)

(?=exp) 断言自身出现的位置的后面能匹配表达式exp 注意:exp本身不会被匹配到
(?<=exp)断言自身出现的位置的前面能匹配表达式exp
(?!exp) 断言此位置的后面不能匹配表达式exp
(?<!exp)断言此位置的前面不能匹配表达式exp

其他

Java里面如何使用正则
相关类位于:java.util.regex包里面类:Pattern
Pattern p = Pattern.compile(r,int); //建立正则表达式,并启用相应的模式( r,int)正则表达式
类:Matcher
解释Pattern对character sequence //执行匹配操作的引擎
Matcher m = p.matcher(str); //匹配字符串str ,str表示被匹配的字符串
对象m方法find()扫描输入的序列,查找与该模式匹配的一个序列;
可以通过group()方法把找到的内容打印;
m.replaceAll(“替换为的内容”);
正则可以用来切割,把字符串的split(”内容”)方法中的内容替换为正则表达式

常用正则验证

电话号码验证:固话,手机号 固话 (0\d{2,3}-\d{7,9}) | (1[35789]\d{9})
邮箱验证:[\w-]+@[a-zA-Z0-9]+(.[A-Za-z]{2,4}){1,2}

如有错误,欢迎指正。

正则表达式使用总结

原文:https://www.cnblogs.com/conly/p/12158055.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!