正则表达式学习方法及笔记

最近参加了百度ife的前端培训,在完成task0002的过程中要求学会正则表达式,曾经在javascript的教学图书中有看过正则表达式,但都讲的不够系统,自己也不够重视,所以就几乎是正则表达式零基础。于是花了不到一个晚上的时间把《入门正则表达式》看完了,一百多页,比网上的大多数教程系统,入门足矣。

首先推荐两个在线测试正则的网站,边学边测试反复实践当然学的更快了。

http://regexpal.com/

http://regexr.com/

个人更喜欢用第二个,功能更加齐全,而且界面更美观一些。

MDN正则表达式  这个这教程结合书使用效果更加。

以下是我在Evernote上整理的读书笔记,由于是按自己学习的状态整理所以有些简单不系统,更加建议看书

元字符(metacharacter)是在正则表达式中有特殊含义的字符,也是保留字符。[0-9]这种形式的正则表达式称作字符组(character class)。

\d可以像[0-9]一样匹配任意阿拉伯数字这种正则表达式叫做字符组简写式(character shorthand),也叫转义字符(character escape)。

使用\D匹配任何一个非数字字符,会匹配空格,字母和标点符号。

.是一个通配符,可以匹配任意字符(但某些情况下不能匹配行起始符)。

脱字符^匹配行起始位置

美元$匹配行结束位置

竖线符|表示选择,也就是从多个可选项中选择一个。

\w只匹配字母,数字,下划线

x(?=y)  匹配’x’仅仅当’x’后面跟着y 正向肯定查找

x(?!y)  匹配’x’ 仅仅当’x’后面不跟着’y’,这个叫正向否定查找

 

使用量词

    {3}花括号中的数字表示带查找的数字出现的次数。包含数字的花括号是一种量词(quantifier)。花花括号本身用做元字符。

?也是一种量词表示连字符是可选的,连字符可以不出现或只出现一次。还有其他的量词,例如加号(+)表示“一个或多个”,星号(*)表示“零个或多个”。

懒惰量词在普通量词后面加一个?可以使它匹配最少

占有量词在普通量词后面加一个+

边界

      就像^和$一样,\b是一个零宽度断言,表面上它会匹配空格或者是行起始,而实际上它匹配的是不存在的东西。

\B匹配非单词边界。

选择,分组和后向引用

举例:先将一个\d放在一对圆括号中,这样就将它放入了一个分组中,后面可以用\1来对捕获的内容进行后向引用。

(\d)\d\1可以匹配707等前后两个数相等的三位数。

      当一模式的全部或则部分内容由一对括号分组时,它就对内容进行捕获并临时存入内存中。可以通过后向引用重用捕获的内容,形式为:\1 或 $1。

(?:x)    匹配’x’但是不记住匹配项。这种被叫做非捕获括号。匹配到的自字符串不能通过数组的[1],...,[n]进行访问。

时间: 2024-10-26 03:42:48

正则表达式学习方法及笔记的相关文章

机器学习-李航-统计学习方法学习笔记之感知机(2)

在机器学习-李航-统计学习方法学习笔记之感知机(1)中我们已经知道感知机的建模和其几何意义.相关推导也做了明确的推导.有了数学建模.我们要对模型进行计算. 感知机学习的目的是求的是一个能将正实例和负实例完全分开的分离超平面.也就是去求感知机模型中的参数w和b.学习策略也就是求解途径就是定义个经验损失函数,并将损失函数极小化.我们这儿采用的学习策略是求所有误分类点到超平面S的总距离.假设超平面s的误分类点集合为M,那么所有误分类点到超平面S的总距离为 显然损失函数L(w,b)是非负的,如果没有误分

正则表达式-Csharp 学习笔记

一. 正则表达式 正则表达式(Regex)是用来进行文本处理的技术,是语言无关的,在几乎所有语言中都有实现. 一个正则表达式就是由普通的字符及特殊字符(称为元字符符)组成的文字模式.该模式秒杀在查找文章主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 正则表达式的常用元字符(全为英文状态,注意可以代表的字符种类和个数): 元字符 含义 .(点) 可以匹配除"\n"外的任意一个字符 [](中括号) 可以匹配中括号内的任意一个字符 例如,&q

perl正则表达式第一周笔记

正则表达式基础 ^ 行首标志 $ 行末标志 如^cat$即一整行只有cat这个单词,^$则是一个空行 [  ] 字符组,用来匹配若干字符之一 如gr[ae]y,即grey或者gray - 在字符组内部,字符组元字符'-'(连字符)表示一个范围(前提是不在字符组开头) 如<H[123456]>和<H[1-6]>是一样的.而[0-9] [a-z] [A-Z]分别用于匹配所有数字.小写字母和大写字母,还可以写成多重范围[]0-9a-zA-Z] 注意,只有在字符组中,'-'才是元字符,其他

《精通正则表达式》学习笔记,第一章 正则表达式入门

脱字符号「 ^」和美元符号「 $」 在检查一行文本时,「 ^」代表一行的开始,「 $」代表结束.「 ^」用来把匹配文本(这个表达式的其他部分匹配的字符) “锚定”( anchor)在这一行的开头.同样,「 cat$」只寻找位于行末的c–a–t,如以scat结尾的行.字符号和美元符号的特别之处就在于,它们匹配的是一个位置,而不是具体的文本. 字符组(character class):「 […] 」 正则表达式结构体( construct)「 […] 」. 它容许使用者列出在某处期望匹配的字符, 通

perl正则表达式第二周笔记

1.使用正则表达式修改文本 1.使用正则表达式修改文本 正则表达式的功能不只有查询,还可以对文本进行修改,例如替换 $var=~m/regex/i $var=~s/regex/replacement/i Replacement两侧的斜杠相当于双引号,也就是说replacement中可以有$1,$2这样的变量来代表前面匹配到的内容 用$var=~s/regex/replacement/可以改变$var中的文本,如果没有匹配成功,就不会有文本的替换 $var=Jeff frield;$var=~s/

《统计学习方法》笔记

书籍ISBN:978-7-302-27595-4 第3章 k近邻法 P37 3.1节 k近邻算法 k近邻算法简单.直观:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类.算法描述如下: 输入:训练数据集 其中xi是n维实数空间上的实例特征向量.yi∈{c1, c2,..., ck}为实例的类别,i = 1, 2,..., N:新输入的实例特征向量x. 输出:实例x所属的类y. (1)根据给定的距离度量,在训练集T

bash shell学习-正则表达式基础 (笔记)

A gentleman is open-minded and optimistic; a small person is narrow-minded and pessimistic. "君子坦荡荡,小人长戚戚" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版) 一.正则表达式基础 1.什么是正则表达式 正则表达式(Regular Expression, RE)是对字符串操作的一种逻辑公式,就是用一些事先定义好的特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串

正则表达式的学习笔记

阅读<正自表达式30分钟入门教程>内容记录: 一.元字符: /b: 代表的单词的开头和结尾,也就是单词的分界处.它只匹配一个位置.(它的前一个字符和后一个字符不全是/w) 示例: 要在him, history, high, hi里匹配hi这个单词 用hi查找,所有的hi都会被找到 所以要精确的查找hi单词,就应该使用/bhi/b 假如要找hi后面不远处有一个lucy 应该用/bhi/b.*/blucy/b 在这里 .  * 是另一个元字符.先是一个单词hi,然后是任意个任意字符(但不能是换行)

机器学习-深度学习之李航-统计学习方法学习笔记之感知机

感知机应该是机器学习里面最简单的模型了.读一遍文章也能理解作者想表达的意思.因为以前像梯度下降,多项式拟合,神经网络都在Andrew Ng的公开课上看过了.但是真正关于书中的公式却不怎么理解.一些简单的作者也没有推导.毕竟这是机器学习,不是微积分,或者线性代数,或者概率论.微积分,概率论,线性代数是 大学期间的基础课程.很多人应该都学过. 关于感知机的几何模型. 感知机有如下几何解释:线性方程: w•x+b=0 对应于特征空间Rn中的一个超平面S,其中w是超平面的法向量,b是超平面的截距. 我们