美文网首页2016技术笔记
2016笔记——正则表达式

2016笔记——正则表达式

作者: 满庭花醉三千客 | 来源:发表于2018-07-27 14:30 被阅读6次

上次做表情的实时输入时,表示对正则表达式很懵逼,后来从网上找的格式字符串,自己也是一知半解。

今天从零开始整一整正则表达式。

一、小白级:

屏幕快照 2016-05-03 14.18.42.png

一眼就能看出来,这是是要查找hi,一起看一下结果:

屏幕快照 2016-05-03 14.21.59.png

可以看得出,一共有7个hi都打印出来了。说明hi可以匹配HI、hI、Hi、hi共四种情况。

二、入门级

如果我们想要精确查找单词hi,其他含有hi的单词(比如him)不算,该怎么办?

屏幕快照 2016-05-03 14.28.09.png

此时,我们换了一下正则表达式,\b是正则表达式规定的一个特殊代码,也有人叫它元字符,它匹配的是单词的分界处。单词的分界处通常是空格、标点符号、换行符来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只 匹配一个位置。

接下来看一下效果:

屏幕快照 2016-05-03 14.34.46.png

三、青铁级

如果我想匹配到 hi 后面跟着几个字母,然后再找到xiaopeipei。可不可以呢?当然可以!

屏幕快照 2016-05-03 14.43.23.png

哇塞 这个正则表达式好厉害啊。。别想多了,我们剖析一下:

\b 占位符

hi 单词hi

\b 占位符

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

  • 元字符,它代表的是数量,指定*前面的内容可以连续重复使用任意次,以使整个表达式得到匹配。
    

\b 占位符

xiaopeipei 单词

\b 占位符

意思就是:先是一个单词hi,然后是任意个任意字符(不能是换行符),最后是xiaopeipei这个单词。

这样看来是不是简单多了?

看一下结果:

屏幕快照 2016-05-03 14.49.10.png

四、黄铜级

如果我们想要匹配数字该怎么写?

屏幕快照 2016-05-03 14.55.49.png

\d是一个新的元字符,匹配一个数字。

那么第一个表达式就没什么问题了,一个一个对号入座即可。

第二个表达式为何可以如此精简?

这里的 \d{3} 的意思是前面的 \d 必须连续重复3次, \d{7} 的意思是前面的 \d 必须连续重复7次。

看一下效果:

屏幕快照 2016-05-03 15.00.32.png

五、白银级

匹配的如果是汉字什么的可以实现吗?

必须可以。

屏幕快照 2016-05-03 15.36.17.png

分析第一个:

\b 占位符 单词开始

G G字母开头

\w 元字符,匹配字母、数字、下划线、汉字

  • 任意数量
    

d 字母d

\b 占位符 单词结束

含义就是:匹配以字母G开头的单词,然后是任意数量的字母、数字、下划线、汉字然后是字母d,然后是单词结束。

分析第二个:

\b 占位符,单词开始

\w{4} 4个任意的字母、数字、下划线、汉字

\b 占位符,单词结束

含义就是:匹配刚好4个字符的单词。

效果:

屏幕快照 2016-05-03 15.41.22.png

六、黄金级

匹配的个数有区别吗?

屏幕快照 2016-05-03 15.54.25.png

分析第一个:

\b 占位符 单词的开头

d 字母d

\w* 任意数量的字母、数字、下划线、汉字(可以为0)

o 字母o

\b 占位符,单词的结束

含义:查找字母d开头,中间任意个任意字母,字母o结尾的单词

第二个和第一个的区别在于:

\w+ 一个或者多个字母、数字、下划线、 汉字(至少为1)

含义:查找字母d开头,中间至少一个任意字母,字母o结尾的单词

结果:

屏幕快照 2016-05-03 15.54.34.png

七、白金级

我想设定匹配的字符数,怎么整?

屏幕快照 2016-05-03 16.20.46.png

分析:

^ 元字符,匹配用来查找的字符串的开头。

m 字母m

\w 元字符,匹配字母、数字、下划线、汉字

{3,9} 重复的次数大于等于3次,小于等于9次

$ 元字符,匹配用来查找的字符串的结尾。

含义:查找字母m开头,3到9位字母、数字、下划线、汉字 的单词。

结果:

屏幕快照 2016-05-03 16.25.39.png

八、钻石级

我想查找 . 该怎么办?

屏幕快照 2016-05-03 16.45.29.png

分析:

\b 元字符,单词的开始

www 字母www

\. 查找.符号,本身.符号是代表任意字符,如果直接用.是没法找出来的,要转义,加 \ 符号。

\w* 任意的字母、数字、下划线、汉字

\. 查找.符号

\w{2,3} 不少于两个不多于三个字符

\b 占位符,单词的结束

含义:查找以www.开头,中间任意字符,以.和两到三个字符结尾的单词

结果:

屏幕快照 2016-05-03 16.46.18.png

九、白金级

我如果只想找wql该怎么指定呢?

屏幕快照 2016-05-03 17.14.50.png

[ ]中所列出的所有元素,都将会成为匹配的对象

[wql] 匹配时,会分别寻找w、q、l

[!?] 匹配时,会分别寻找!和 ?符号

[0-9] 完全等价于\d [a-z0-9A-Z_]只考虑英文的话,是等价于\w的。

结果:

屏幕快照 2016-05-03 17.19.41.png

十、黄金级

如果我想写两个条件怎么写?

屏幕快照 2016-05-03 17.28.40.png

分析:

\b 元字符,单词的开始

\d{3} 3个数字

  • -符号
    

\d{8} 8个数字

\b 元字符,单词的开始

| 分隔不同规则的符号

\b 元字符,单词的开始

\d{4} 4个数字

  • -符号
    

\d{7} 7个数字

\b 元字符,单词的开始

含义:查找区号为4位,本地号为7位的号码以及区号为3位,本地号为8位的号码。

注意:使用分支条件时,要注意各个条件的顺序。因为匹配分支条件时,会从左到右地测试每个条件,如果满足某个分支,则不去管其他条件了。

A = \d {5}

B = \d {5}-\d{4}

如果为A|B,那么只会匹配5位数字了,因为满足B的都被拆了前五位。这时应该采用B|A分支条件。

效果:

屏幕快照 2016-05-03 17.39.49.png

十一、白银级

重复的单个字符好弄,可是重复多个字符该怎么办?

屏幕快照 2016-05-03 18.04.18.png

分析一式:

\b 元字符,单词的开始

(wql) 子表达式wql

(wql){2} 子表达式重复两次

\b 元字符,单词的结束

| 分隔不同规则的符号

\b 元字符,单词的开始

[a-z] 小写字母

([a-z]) 将小写字母作为子表达式

([a-z]){2} 子表达式重复两次

\b 元字符,单词的结束

含义:找两个wql连写的,或者找两个小写字母连写的。

分析二式:

\b 元字符,单词的开始

[0-6] 数字0-6

([0-6]) 将0-6的数字作为子表达式

([0-6]){3} 子表达式重复三次

A 字母A

? 重复0次或1次

[a-z] 小写字母

([a-z]) 将小写字母作为子表达式

([a-z]){2} 子表达式重复两次

\b 元字符,单词的结束

含义:查找三个一样的数字,然后可以有A,也可以没有A,然后是两个一样的小写字母。

效果:

屏幕快照 2016-05-03 17.59.02.png

加油~

相关文章

  • 学习笔记 正则表达式

    2021.01.19 北京海淀 -2℃ 小雪转晴 正则表达式学习笔记 说明:该笔记参考“菜鸟教程”网站正则表达式...

  • 笔记:正则表达式

    正则表达式基础部分笔记

  • js高级(四)

    JavaScript高级第04天笔记 1.正则表达式概述 1.1什么是正则表达式 正则表达式( Regular E...

  • 正则表达式学习笔记

    正则表达式学习笔记 一篇记录了学习正则表达式的笔记。 1. 转义字符 在 HTMl 中转义字符以 & 符号开头,分...

  • JavaScript正则表达式

    JavaScript 正则表达式 @(笔记)[正则表达式] 第一章 课程简介 1-1 JS正则表达式简介及应用 课...

  • Python学习随笔

    本笔记整理自中谷教育在线教育视频 学习笔记——正则表达式常用符号 这里学习过正则表达式后,简单做了一个爬虫程序,效...

  • 作业-第04周--课堂-Day15-正则表达式与三剑客知识应用实

    Day15 课堂笔记 1. 正则表达式 什么是正则表达式? 简单地说,正则表达式就是为了处理大量的字符串及文本而定...

  • 一个程序员的自我学习第一天

    《正则表达式必知必会》笔记 第一章:正则表达式入门 1:正则表达式是一些用来匹配和处理文本的字符串。正则...

  • 《我能让你睡得香-----一》

    2016-12-22原文:“春生夏长,秋收冬藏”笔记: 2016-12-22原文:◎春季:夜睡早起笔记: 2016...

  • 2016笔记——正则表达式

    上次做表情的实时输入时,表示对正则表达式很懵逼,后来从网上找的格式字符串,自己也是一知半解。 今天从零开始整一整正...

网友评论

    本文标题:2016笔记——正则表达式

    本文链接:https://www.haomeiwen.com/subject/pqxgmftx.html