• 正则表达式-实例分析


    有些人就喜欢反人类。

    比如,很多时候我们会具体需求写出符合要求的正则表达式。但是有些人偏偏不这么干,他会问你这个正则表达式是干嘛的,并称之为综合运用能力。

    这就好比非要人根据拉的屎去推测吃了什么。

    或许你想到了,他,就是面试官。

    没办法,人在矮檐下,不低头就碰头。忍忍吧!

    先撩出来一个正则表达式:

    /(w+)://([^/:]+)(:d*)?([^# ]*)/

    干嘛的呢,分析下:

    1、首先可以判断最外层的两个 / 是定界符,相当于 sed 的前一部分
    2、三组小括号,构成三个小组,配合 arr[i] ,形成arr[1], arr[2], ...
    3、w d 分别匹配 字母、数字
    4、(w+):// 匹配 若干个字符,并且分配到 1 部分
    5、([^/:]+) 匹配 非/、非: 部分,: 前所有东西
    6、(:d*)? 匹配 若干个数字的组合,括号后面的 ? 是 匹配前面表达式 0或 1 次。
    7、([^# ]*) 匹配 非#、非 (空格)

    结合实例再看看
    http://www.runoob.com:80/html/html-tutorial.html
    /(w+)://([^/:]+)(:d*)?([^# ]*)/

    1、首先可以判断最外层的两个 / 是定界符,相当于 sed 的前一部分
    2、三组小括号,构成三个小组,配合 arr[i] ,形成arr[1], arr[2], ...
    3、w d 分别匹配 字母、数字
    4、(w+):// 匹配 http:// 部分,:// 原样匹配, http则由 (w+) 匹配,并且把 http 分配到 1 部分
    5、([^/:]+) 匹配 www.runoob.com 部分,为什么呢,因为指定的是 非/、非: ,所以,匹配了 / 和 : 之间的所有东西
    6、(:d*)? 匹配 :80 部分, 这部分原本很好理解, : 开头,若干个数字的组合,可问题是在括号后面的 ? ,到底是个什么鬼 ,最终的解释只能是 匹配前面表达式 0或 1 次。
    7、([^# ]*) 匹配 /html/html-tutorial.html 部分,没啥说的, 非#、非 (空格)进行匹配

  • 相关阅读:
    蓝桥杯 买不到的数目(动态规划)
    部分ftp登不上原因
    glColor3f()函数 表示颜色
    三维模型(X,Y,Z)坐标,UV坐标
    找不到 Windows SDK 版本10.0.18362.0的解决办法
    头文件中的ifndef/define/endif有什么作用?
    pycharm 出现opencv(4.4.0)等等错误如何解决
    灵敏度分析与误差分析
    死磕Spring之AOP篇
    死磕Spring之IoC篇
  • 原文地址:https://www.cnblogs.com/smallfishy/p/12917724.html
Copyright © 2020-2023  润新知