• 正则表达式相关概念


    元字符

    正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式

    以上出自百度百科,通俗点说就是拥有一些特殊能力的字符,普通的字符比如a就表示a,元字符.可以表示任意字符

    正则表达式语法

    基础概念

    • ^表示匹配输入字符串的开始位置
    • ¥表示匹配输入字符串的结束位置
    • /可以与下一个字符一起组成元字符,比如/r表示回车,/n表示换行
    • . 可以匹配任何字符,hell. 匹配 hello,^hell.$ 也匹配 hello

    / 可以配合很多字符代表特殊含义

    • \d 匹配一个数字字符,可以表示0到9中任意一个数字
    • \D 匹配一个非数字字符
    • \s 匹配所有的空白字符,包括空格、制表符、换页符、换行符、回车符等等
    • \S 匹配所有的非空白字符
    • \w 匹配所有的数字、字母以及下划线
    • \W 除了 \w 匹配到的内容其他的字符都能匹配到
    • \. 表示普通的 .
    • \\表示\

    空白字符

    • \f 换页符
    • \n 换行符
    • \r 回车符

    这里说一下换行与回车的区别

    换行符就是另起一新行,光标在新行的开头;回车符就是光标回到一旧行的开头(即光标目前所在的行为旧行)

    也就是说键盘上的回车键是用来进行实现换行的

    []

    使用[]来表示任意字符,[]代表一个字符集合,可以匹配所包含的任意一个字符,注意只能匹配一个

    比如[abc]可以匹配a或者b或者c

    在 [] 中加入 ^ 可以匹配未包含的任意字符,比如 [ ^abc ] 匹配除了abc的任意一个字符

    在 [] 中加入 - 匹配指定范围内的任意字符,这个指定范围使用 ASCII 码来判断,比如 [ a-z ],表示匹配 a 到 z 中的任意一个字符

    在 [] 中的 . 表示普通的 .

    [] 可以被看成一个字符

    匹配前面的字符多次

    前面使用到了中括号,这里可以使用大括号

    • *表示匹配前面的表达式任意次
    • +表示匹配前面的表达式一次或多次(大于等于1次)
    • ?表示匹配前面的表达式零次或一次
    • {n},n必须是一个非负整数,该表达式意思时匹配前面的表达式确定的n次例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o
    • {n,} n是一个非负整数。至少匹配n次
    • {n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。可以写成 {n,} 或者 {,m} 形式,表示至少匹配n次以及至多匹配m次

    配合前面的 [],正则表达式就有操作空间了,比如 [a-z]*,可以匹配 abcabcabc

    ()

    中括号和大括号都出现了,怎么能少的了小括号

    使用 () 定义一个子表达式。子表达式的内容可以当成一个独立元素,即可以将它看成一个字符,可以在 () 中使用元字符

    这么做有什么好处?比如(ab){2,}可以匹配ababab

    windows和linux下读取文件换行符的不同

    windows和linux下对换行符处理不同

    使用 Windows 系统时,程序用 enter 换行,真正朝文件中写的是\r\n(0x0d0x0a) ,同时读取时程序真正读取的是\n

    使用 Linux 系统时,程序用 enter 换行,真正朝文件中写的是\n(0x0a) ,同时读取时程序真正读取的是\n

    因此,有些正则表达式或者程序在win中可以正常运行,在Linux下确不能

    常用网站

    正则表达式在线测试以及常用正则表达式查询

    https://c.runoob.com/front-end/854/

    可视化理解正则

    https://jex.im/regulex/#!flags=&re=%5E(a%7Cb)*%3F%24

  • 相关阅读:
    nginx 配置|禁止访问规则
    《Effective C++》知识点(7)--模板与范型编程
    Mac git查看分支以及切换分支
    vue.use和vue.prototype的区别
    lab3_系统调用(下)
    发挥服务器的无限潜能:创意项目、在线社区和更多
    安全协议缺陷
    Prometheus配置Basic Auth进行安全防护,实现登录控制
    qtcreator的快捷键
    python线程
  • 原文地址:https://blog.csdn.net/sekever/article/details/126360601