为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
鬼斧神工之正则表达式_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

鬼斧神工之正则表达式

壞大叔bbUncle PHP开发工程师
难度初级
时长 3小时12分
  • //正则表达式模式修正(在正则表达式代码中如何体现?只需在正则表达式的第2个/后加上修正模式的标识。[懒惰模式的标识是U]) //$pattern = '/imooc.+123/';//首先寻找imooc单词并且后面跟上.(除了换行符之外的任意字符)并且匹配1次到无穷大次(有很多种情况)并且结尾以123作为结束。 $pattern = '/imooc.+123/U';//懒惰模式(匹配结果取多种可能性中最短的那个) //匹配结果有多种可能(imooc__123,imooc__11213123,...),这个时候正则表达式在目标字符串上产生了歧义。 //匹配的结果存在很多种可能性,到底取哪种作为输出结果呢?这时需要给正则表达式指定一个修正模式来告诉PHP我们想要哪种结果。默认采用的是贪婪模式(选择匹配结果最长的那个)。 $subject = 'I love imooc__123123123123123123'; $matches = array(); preg_match($pattern,$subject,$matches); show($matches);
    查看全部
  • 修正模式:可以理解成是给正则表达式的匹配过程指定一种匹配模式。比如:根据不同的使用场景给手机指定不同的铃声模式。(在平时,使用铃声模式;开会时,使用震动模式) 由于正则表达式匹配的目标字符串情况复杂多样。有时候同一个正则表达式在匹配同一个目标字符串的时候,存在匹配出2种甚至是多种不同结果的可能,而这就让匹配产生了歧义,修正模式就是为了解决这种问题而存在的。 贪婪匹配:匹配结果存在歧义时,取其长。默认是贪婪模式。 懒惰匹配:匹配结果存在歧义时,取其短。 指定模式:只需要在正则表达式的末尾,也就是斜杠(/)的后面,加上一个修正模式的标识,大写的U。如PHP中:$pattern = '/imooc.+123/U'。
    查看全部
  • 模式单元: ()匹配其中的整体为一个原子。 会把括号以及里面的正则表达式当做是一个原子来看待,可以与()后面的字符组成模式单元 例: 之前: Duang~|duang~ 或[Dd]uang~ 模式单元写法:(D|d)ang~ 即匹配 Dang~和dang~
    查看全部
  • 边界控制 ^Duang~$ 表示必须以 D 开头以 ~ 结尾才能匹配到结果。
    查看全部
  • 边界控制: 1、^ 匹配字符串开始的位置。限制正则表达式必须以什么开头,也就是它之前不能有任何的东西。 2、$ 匹配字符串结尾的位置。限制正则表达式必须以什么结束,也就是它之后不能有任何的东西。 模式单元: ()匹配其中的整体为一个原子
    查看全部
  • \d+ 表示匹配一次到无穷大次数字连续出现的字符串,就是说只要是数字,它出现1次或者连续出现2次...3次4次一直到无穷大次,它都会符合这个表达式的匹配结果。 \d? 表示匹配数字0次或者1次。 _?i (下划线出现0次或者1次,后面紧跟i) 匹配的结果只能是_i和i。
    查看全部
  • \w* 表示不管匹配多少次,只要是字母,数字,下划线这几种原子连续在一起的都会被匹配出来。只要中间出现不符合\w这个集合的原子,那么就会断开进行一次新的匹配。
    查看全部
  • 量词的控制不但支持原子,还支持原子的集合。 [a-zA-z]{2},表示4个英文字母连续在一起的都会被匹配到,
    查看全部
  • 555<=>5{3},表示5这个数字连续出现3次的就把它匹配出来。
    查看全部
  • 量词:在目标字符串中查找某一个原子连续出现多少次。 1、{n} 表示其前面的原子恰好出现n次。 2、{n,} 表示其前面的原子最少出现n次。 3、{n,m} 表示其前面的原子最少出现n次,最多出现m次。 4、* 匹配0次,1次,或者多次其之前的原子,即{0,}。 5、+ 匹配1次,或者多次其之前的原子,即{1,}。 6、? 匹配0次,1次,或者1次其之前的原子,即{0,1}。
    查看全部
  • \d 匹配任意一个十进制数字,即[0-9]
    查看全部
  • .<=>[^\n]这两个写法是等价的,匹配除了换行符之外的任意字符。
    查看全部
  • 元字符之原子的集合:这一类原子的写法比较固定。每一个写法都表示一类原子的集合。 1、. 匹配除换行符之外的任意字符。 2、\d 匹配任意一个十进制数字,即[0-9]。 3、\D 匹配任意一个非十进制数字,即[^0-9]。 4、\s 匹配一个不可见原子,即[\f\n\r\t\v]。 5、\S 匹配一个可见原子,即[^\f\n\r\t\v]。 6、\w 匹配任意一个数字,字母或下划线,即[0-9a-zA-Z_]。 7、\W 匹配任意一个非数字,字母或是下划线,即[^0-9a-zA-Z]。
    查看全部
  • 元字符主要做2件事:1定义原子的筛选方式,2把某一类原子,比较类似的原子(英文字母abcd和数字1234)进行归类,给出一个缩写来简化正则表达式的书写方式。 [] -> 匹配出现在[]中的任意一个原子 | -> 或运算,匹配|符号左右两边的任意一个 [^ ] ->首先这里^必须和[紧挨着,才表示匹配除了[]里面任意原子的字符 [ ^ ]->如果不挨着,就只表示匹配^这种字符了 脱字符在正则中好像有两种方法吧?没有讲吧,一种是在[]中是表示反选,比如/[^0-9]/表示除了0-9意外的字符都匹配,一种是在//中表示以什么什么开始,比如/^a[0-9]/表示匹配字符串只能是以a开头后面紧跟数字的字符串,比如'a234234 a453',这样一个字符串,就会匹配a2,而后面的a4则不会被匹配,因为它不是开头,这个同学们要注意!
    查看全部
  • php中常用的正则表达式函数
    查看全部
    0 采集 收起 来源:课程准备

    2015-09-21

举报

0/150
提交
取消
课程须知
学习本课程之前需要掌握基本的PHP语法,基本的OOP思想,基本的MVC模式知识。
老师告诉你能学到什么?
在本课程中可以充分理解正则表达式的定义并掌握如何在实际开发中应用正则表达式。其中包含表单验证实际应用以及简易版模板引擎的实现。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!