24.1-正则表达式元字符和重复

把美丽作为一种人生态度,自信、自律,保持初心,感知美好,让美丽由内而外的盛放!

正则表达式是必备技能之一

正则表达式难学在于没有吧那些例子吃透,

总结:

  1. win下换行符可能是 回车换行符 \r\nCR|LF
  2. 一旦扫描绝不回头;不会重叠匹配123 \d\d -12;

正则表达式 Regular Expression

正则表达式 Regular Expression,缩写regex、regexp、RE等;

当今计算机主要是处理文本和数据(至少目前是这样的),特别是在Web兴起之后,开发任务中的有一大堆都是对字符串的处理.

1.什么是正则表达式

正则表达式,就是一种描述字符串结构模式的形式化表达方式.正则表达式它简单,优美,功能强大,妙用无穷.

正则表达式主要是用来处理文本,或者准确说是处理对象序列,对于很多实际工作来说,可以成百倍的提高开发效率和程序质量.

有的同学也许会说,正则表达式不是很复杂吗,就正则本身来说,它的规则并不复杂,但是组合起来就复杂了,不然也不会威力无穷啊,所以学的话最好从本质入手,才能真正掌握正则的奥秘.

2.正则表达式分类

  • BRE:基本正则表达式,grep、sed、vi 等软件支持,vim 有拓展;
  • ERE:扩展正则表达式,egrep(grep -E)、sed -r 等;
  • PCRE:几乎所有高级语言都是PCRE的变种,python从106开始使用SRE正则引擎,可以认为是PCRE的子集,见模块re;

3.正则表达式进行匹配的流程

依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。


4. 基本语法

元字符 matacharacter(一个字符)

对于PCRE的多种变种,元字符在每一种 编程语言中 都是基本一致的,
\b是一个例外,指的是单词的边界;

元字符 每次匹配一个字符;元字符可以组合 \d\d\d
一旦扫描绝不回头;不会重叠匹配123 \d\d -12;

代码 说明 举例
. 匹配除换行符外任意一个字符 . win下换行符可能是 回车换行符 \r\n
[abc] 字符集合,只能表示一个字符位置。匹配所包含的任意一个字符 [abc]匹配plain中的'a'
[^abc] 字符集合,只能表示一个字符位置。匹配除去集合内字符的任意一个字符 [^abc]可以匹配plain中的'p'、'l'、'i'或者'n'
[a-z] 字符范围,也是个集合,表示一个字符位置,匹配所包含的任意一个字符 常用[A-Z][0-9]
[^a-z] 字符范围,也是个集合,表示一个字符位置,匹配除去集合内字符的任意一个字符
\b 匹配单词的边界 \bb 在文本中找到单词中b开头的b字符
\B 不匹配单词的边界 t\B 包含t的单词但是不以t结尾的t字符,例如write \Bb不以b开头的含有b的单词,例如able
\d [0-9]匹配一位数字 \d
\D [^0-9]匹配一位非数字
\s 匹配1位任何空白字符,包括制表符、换行符、空格 如 [\t\n\r\f\v]
\S 匹配1位非空白字符
\w 匹配[a-zA-Z0-9_]任何大小写字母, 数字和 包含中文的字; 不匹配符号,。.
\W 匹配\w之外的字符 (匹配 符号,空格、换行符、回车符)
[...] 用来表示一组字符,单独列出,比如[amk]匹配a、m或k
[^...] 不在[]中的字符,比如[^abc]匹配除了a、b、c之外的字符
\Z 匹配字符串结尾,如果存在换行,只匹配到换行前的结束字符串
\z 匹配字符串结尾,如果存在换行,同时还会匹配换行符
\G 匹配最后匹配完成的位置
\n 匹配一个换行符
\t 匹配一个制表符
字符集合[]
[1111111]   [1]
[abbbbbbbb]   [ad]
[0-2]   [0]、[1]、[2]
转义

凡是在正则表达式中他有特殊意义的符号,如果想使用它的本意,请使用\转义
反斜杠自身吗,得使用\\

重复

前面重复多少次的问题;

代码 说明 举例
* 表示前面的正则表达式会重复0次或多次 e\w* 单词中e后面可以有非空白字符
+ 表示前面的正则表达式重复至少1次 e\w+ 单词中e后面至少有一个非空白字符
表示前面的正则表达式会重复0次或1次 e\w? 单词中e后面至多有一个非空白字符
{n} 重复固定的n次 e\w{1} 单词中e后面只能有一个非空白字符
{n,} 重复至少n次 e\w{1,} 等价 e\w+、e\w{0,} 等价 e\w*、e\w{0,1} 等价 e\w?
{n,m} 重复n到m次 e\w{1,10} 单词中e后面至少1个,至多10个非空白字符

练习:

1. 匹配手机号码:字符为"手机号码13851888188。"
1[0-9]{10}   1\d{10}
以13开头的:  (13|17)\d{9}


2. 匹配中国座机:字符串为"号码为025-83105736、0543-5467328。"
\d{3,4}-\d{7,8}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 《Linux命令行与shell脚本编程大全》,4 E -- Chapter 20 一、 什么是正则表达式 1. 定...
    生信摆渡阅读 834评论 2 3
  • 正则表达式(regular expression)是一种可以在许多现代应用程序和编程语言中使用的特殊形式的代码模式...
    Android轮子哥阅读 11,379评论 4 16
  • python:正则表达式 什么是正则表达式 正则表达式也叫做匹配模式(Pattern),它由一组具有特定含义的字符...
    清清子衿木子水心阅读 465评论 0 2
  • 正则表达式概念源于 《神经网事件的表示法》论文中。 正则表达式就是用某种模式去匹配一类字符串的一种公式。 正则表达...
    单板小智阅读 770评论 0 1
  • “行胜于言”这句话我非常喜欢。时光倒流到2018年。 暑假我有幸参观了清华大学,印象最深的是一块巨石上的四...
    逆风飞扬_fdcd阅读 721评论 0 2