文档章节

正则表达式入门(一)常用元字符

老吴头
 老吴头
发布于 2018/04/17 13:29
字数 806
阅读 11
收藏 0

常用元字符

  • 例子: hi, what are you doing? candy?

\b 匹配单词的开始处或结尾处

如何正确的匹配hi?我们可以使用\bhi来匹配,但是如果要匹配的单词是: him,high,hidden等单词,那么使用\bhi就不能精确匹配出hi,所以我们可以使用\bhi\b该方式精确匹配出hi,该正则表达式理解为,匹配以h开始并且以i结束的词。

. 匹配除了换行符以外的任意字符

上面的列子精确的匹配了hi,但是现在又新增一个需求,想要匹配hi以及后面的candy。于是想到了使用\bhi\b.\bcandy\b来匹配,但是该语法有个限制,只能匹配一个字符,比如只能匹配hi,candy、hi1candy这种类似的字符,但无法匹配hi, what are you doing? candy?这样的字符,匹配的数量有限制。

<span id="jump"></span>

为了解决.只能一个任意字符的问题,我们可以将*.联合使用,写出这样的表达式\bhi\b.*\bcandy\b,该表达式语义为: 匹配以h开头i结尾且中间为除换行符以外的任意字符,且可连续匹配该字符任意次,之后以cand开始以y结束的内容。

\d 匹配数字

现在我们有一个需求,要求匹配以15开头的手机号,如:15XXXXXXXXX 我们可以使用\d写出15\d\d\d\d\d\d\d\d\d这样的表达式。但是这样写比较麻烦;我们可以改成这样: 15\d{9},该表达式表示: 匹配15之后的任意9个数字。

^匹配字符串的开始处,$ 匹配字符串的结束处。

上面的例子虽然可以匹配15开头的手机号,但是如果我们输入as15111111111sd这样的也能被匹配到,是因为我们没有做限制,现在我们就对上面的表达式改进为: ^15\d{9}$

解除元字符限制

当我们想使用元字符本身的时候,可以使用\对元字符进行转义,比如我相匹配www.baidu.com,我们可以使用www\.baidu\.com进行转义匹配,此外还比如匹配计算机盘符:D:\\User对应的是D:\User。其他元字符也是如此: 比如使用*可以换成\*

限定符

* 前面的内容可以连续重复0次或任意次数,最终使得整个表达式得以匹配

上面已经有例子讲过的例子: 用*进行匹配

+ 前面的内容可以连续重复至少1次或任意次数,最终使得整个表达式得以匹配

使用hi, what are you doing? candy?的例子,我们要匹配包含hi开始,并以candy结束的单词。可以这样写: ^\bhi\b.+\bcandy\b$。该表达式可以匹配hi, what are you doing? candy?这样的词组,但是无法匹配hicandy这样的词组。因为+的规则是至少是匹配重复的1次。 如果要匹配数字呢?比如匹配15开头的数据,可以这样写:15\d+

© 著作权归作者所有

老吴头
粉丝 1
博文 21
码字总数 15718
作品 0
杭州
后端工程师
私信 提问
(待整理完)正则表达式30分钟入门教程

正则表达式是什么? Regular Expression(regex、regexp或RE):记录文本规则的代码(描述搜索模式的特殊文本字符串) 很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是和?...

吴伟祥
2018/08/28
0
0
正则表达式 学习参考 推荐入门者看

正则表达式(Regular Expression)是一种匹配模式,描述的是一串文本的特征。 正如自然语言中“高大”、“坚固”等词语抽象出来描述事物特征一样,正则表达式就是字符的高度抽象,用来描述字符...

浮躁的码农
2015/08/14
0
0
正则表达式-基本概念与简单元字符

正则表达式工作中一直在使用,但是没有系统的总结过,今天就从小白的角度梳理一下正则表达式的使用,主要关注的是正则的思想 边写边听五月天的派对动物。学会了正则省下的时间就可以去party...

Quan全
2018/05/10
0
0
正则表达式30分钟入门教程

版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源 目录 跳过目录 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 ...

baresnail
2014/02/28
0
0
简单的正则表达式入门教程

正则表达式到底是什么东西? 字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符的序列。文本也就是文字,字符串。说某...

暖冰
2015/12/09
43
0

没有更多内容

加载失败,请刷新页面

加载更多

两数的最大公约数

hello,复习一下数学知识! 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。 因为之前做一个小功能,需要先计算一下数组的最大公约数,所以我就想记录一下...

woshixin
今天
3
0
学习Node.js的电子书大全

在这里,与大家分享一批很有用的 Node.js 的电子书资源。Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序,编写...

jay603
今天
58
0
《伟大的博弈》读后感作文4100字

《伟大的博弈》读后感作文4100字: 五一小长假,作为工厂员工,没能跟上大家放假的步伐,窝家里两天没出门,逼着自己看完《伟大的博弈》,感触颇多。似乎不能消化,先记录第一遍作为幼稚的见...

原创小博客
昨天
5
0
单点登录-基于Redis+MySQL实现单点登录(SSO)

1. 为什么要用单独登录? 主要便于公司内部多系统统一认证授权管理,一次登录可访问多个跨域系统,也同时更加方便统一管理用户登录(员工离职需要拿掉登录权限、统计所有用户对系统的登录请求...

秋日芒草
昨天
2
0
827. Making A Large Island

思想: 将所有连通的 1 分成一个组,分配编号,然后使用BFS统计1的个数,得到这个组的面积。 遍历格子里所有为 0 的元素,检查四个方向的1所在的组并加上这个组面积。于是得到当前元素为 0 ...

reter
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部