正则表达式学习

126 阅读2分钟

正则表达式

在正则表达式中, 元字符是具有特殊意义的字符, 用于匹配文本模式, 而不是单纯地表示它们自身的字面值.


锚点

锚点用于指定字符串中的某个位置, 而不是具体的字符.


"^"

作用: 匹配字符串或行的开头位置, 不匹配任何具体的字符, 而是锚定字符串开头的位置

用例

^hello

表示匹配以 hello 起始的行, 常常与 /gm 搭配使用, 分别表示 global, multiline.

PixPin_2024-12-21_11-58-51


字符类

零宽断言

零宽断言(Zero-Width Assertion): 通俗理解就是"一个不占地方的条件判断".

1. 什么是零宽?

在正则表达式中, "零宽"(Zero-Width) 的意思是:

  • 匹配的位置: 它仅仅检查一个条件是否满足, 而不会"消耗"字符串中的字符.
  • 不占字符宽度: 他只确定某种关系或位置, 但不会出现在匹配结果中.

2. 什么是断言?

"断言"(Assertion) 在正则表达式中表示一种条件判断, 它只检查字符串是否满足某种条件, 而不会修改或匹配字符串本身.

常见断言包括:

  • 正向前瞻 (?=...)
  • 负向前瞻 (?!...)
  • 正向后瞻 (?<=...)
  • 负向后瞻 (?<!...)

它们都属于零宽断言, 因为它们检查条件, 但不"占用"字符宽度.

正向前瞻

介绍

Positive Lookahead: 是一种在正则表达式中使用的零宽断言, 用于匹配一个特定的模式, 但不会消耗字符. 换句话说, 正向前瞻会检查目标字符串中是否紧跟着一个符合条件的模式, 而不会将这个模式本身包含在匹配的结果中.

用例

这里可以看到, 原本的正则并没有匹配 数字后面的 "PM", 如果在正向前瞻括号的后方加上 "PM", 这两个字符才被匹配上.

PixPin_2024-12-20_12-23-44

量词与分支

"+"

介绍: 修饰前一个字符, 可重复 1 次及以上.

用例

  1. 简单用法
a+

20241221120859

  1. 进阶用法, 与其他元字符搭配使用, 或者

标志

组和引用