字符边界

  • 匹配的不是字符而是位置,即符合条件的位置 而不是字符
  • ^ 在字符串的开始的位置匹配 在方括号是取反的哟
  • $ 在字符串的结束的位置匹配
  • \b 匹配一个单词边界 匹配的位置是前面的字符和后面的字符不全是\w 即字与空格间的位置。
  • \B 非单词边界匹配。

匹配模式

  • IGNORECASE 忽略大小写模式

    • 匹配时忽略大小写
    • 默认情况下,正则表达式是区分大小写的
  • SINGLELINE 单行模式

    • 整个文本看作是一个字符串,只有一个开头和结尾
    • 使小数点 "." 可以匹配包含换行符(\n)在内的任意字符
  • MULTILINE 多行模式

    • 每一行者是一个字符串,都是有开头和结尾
    • 在指定了MULTILINE 之后,如果需要只匹配字符串开始和结束位置可以使用\A\Z

选择符和分组

  • | 分支结构 左右两边的表达式之间"或"关系 匹配左边或右边
  • () 捕获组

    • 在被匹配次数的时候,括号中的表达式可以作为整体被修饰
    • 取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
    • 每一对括号会分配一个编号,使用 ()的捕获根据左括号的顺序从一开始自动编号。捕获元素编号为零的第一个捕获是由整个表达式模式匹配的文本
  • (?:Expression) 非捕获组 一些表达中,不得不使用(),但又不想保存()中的子表达式匹配的内容 ,这时可以用非捕获组来抵消使用()带来的副作用

反向引用 (nnn)

  • 每一对()分分配一个编号 ,使用()的捕获根据左括号的顺序从1开始自动编号
  • 通过反向引用,可以对分组已捕获的字符串 进行引用
最后修改:2021 年 05 月 06 日 04 : 57 PM
如果觉得我的文章对你有用,请随意赞赏