当前位置:主页 > 论文百科 > 英文数据库 >

正则表达式实例学习

发布时间:2017-05-14 15:01

  本文关键词:学习正则表达式,由笔耕文化传播整理发布。


学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验。我觉得正则表达式很像大一时候学习的离散数学的,使用“与或非(&,|,^)”的逻辑表达式来抽象一段复杂的自然语言描述,从而解决一些逻辑分析问题。

1.语法:

正则表达式实例学习

正则表达式实例学习

正则表达式实例学习

正则表达式实例学习

2.实例

当我们进入大学的时候,每个同学都会有一个学号(例如我的学号是201235010126)。在我们的大学,学号里面集中了年级,专业代码,班级代码,学生编号的种种信息,由此得到每一个同学唯一的ID号。今天这里采用专业年级的例子,由浅入深,讲解一个复杂表达式的来源。下面结合自己情况,以所在大学湖南大学保密专业为例,写一写学习正则表达式心得。

学号编码规则:

对201235010126来说: 条件1:1-4位(2012)表示年号 条件2:5-8位(3501)固定是专业号3501 条件3:倒数第三位表示班级号,每个年纪有6个班级 条件4:最后两位表示班级内学号,每个班有32人 条件5:12级开始倒数第四位补0

2.1实例一:匹配12级保密1班的学生。 正则表达式是: 分析

1."^"匹配开头,"$"匹配结尾,,"|"表示或
2.?:匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用.
3.学生学号是01-32,所以拆分成3组:
a)01-09:0[1-9]
b)10-29:[1-2]/d
c)30-32:3[0-2]

2.2实例二:匹配11级保密和12级保密班的全体学生。

?:是小括号的专利,因为小括号里面的是一组字符

2.3实例三:匹配11级保密6个班和12级保密6个班的所有学生

()表示把一些代码组合起来,[]表示把所有的字符组合起来

2.4实例四:匹配2001-2019级的所有学生(假设每个年级6个班,其中2011为分界线,2012级开始倒数第四位补0) 分析

1.条件1-2规定了最后三位,也就是101-632,所以我们可以轻松想到1-6$这样可以匹配后三位,在这里面01 - 32可以分成3段:

a)[1-9] b)10-29:[1-2]/d c)[0-2]

2.然后我们看前面四位,由于特殊的年份是以11-12年分界的,所以我们说从第3位到倒数第4位都是特殊的,开头肯定是^20,然后里面根据情况可以分为补0的还是不补为的,所以可以得到(xxx3501|xxx35010),然后我们可以看到第一个XXX表示的是01-11,也即可以写成(?:0[1-9]|1[01]),第二个表示的是12-19,也即可以直接写成1[2-9],所以中间一部分是

([2-9]35010)

3.最后:我们就可以得出一个看起来非常高大上的正则表达式了

终于把这个看似高大上的一串正则表达式匹配出来了,其实只要仔细罗列好条件,正则表达式就是xx的oo次的无限组合。O(∩_∩)O~ ~

正则表达式实例学习


  本文关键词:学习正则表达式,由笔耕文化传播整理发布。



本文编号:365455

资料下载
论文发表

本文链接:https://www.wllwen.com/wenshubaike/mishujinen/365455.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户3a072***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com