zhyDaDa的个人站点

正则表达式学习___2022-08-24_13-42

未分类

常用速查

匹配中文字符

[\u4E00-\u9FFF]

匹配网址

[http://|ftp://|https://|www]?[^\u4e00-\u9fa5\s]*?\.[com|net|cn|me|tw|fr][^\u4e00-\u9fa5\s]*


系统学习

学习用书: 正则表达式必知必会

1. 入门

  • 名称: Regular Expression(abbr. regex)
  • 定义: 正则表达式是一些用来匹配和处理文本的字符串
  • 功能:
  • 搜索(匹配文本)
  • 替换(匹配并替换文本)

  • 注意: 不同语言or软件在使用正则时有微小出入

2. 匹配单个字符

  • 纯文本: 放上对应的纯文本就ok
  • 任意字符: 用元字符(Metacharacter) . 来表示任意字符

    这相当于Dos中的 ? 以及SQL中的 _

  • 转义符: \ 是一个元字符, 其作用不言而喻, 就是将ta后面的有特殊意义的字符转换为纯文本

    一般, 称一个实际的正则表达式为 模式

3. 匹配一组字符

  • 字符集合区间: 在 []中加入想要匹配的单个字符

    例: [Cp]a[Tt]可以匹配到如下四个字符串

    pat paT Cat CaT

注意: 要想返回全部匹配结果就要用 g 标志(global)
且不同语言or工具使用方法不同
相似地, 如果要无视字母的大小写, 就要用 i 标志

  • 连字符: - 是元字符之一, ta的作用时表示ASCII字符表上, 其左右连接的字符间的所有字符

[0-9][0123456789]完全等价

  • 常用的字符集和区间:
  • [a-z]
  • [A-Z]
  • [0-9]

  • 注意: - 的左右字符必须在ASCII上是前后关系, 否则无意义
    另外, [A-z] 会掺杂进Z和a之间的其他字符, 不推荐使用

  • 取非匹配: 元字符 ^ 如果出现在 [] 中间的最前面, 那么表示不匹配这个区间内的字符

5. “贪婪型”元字符和”懒惰型”元字符

  • 贪婪型: 在一行内尽可能的匹配
  • 懒惰型: 在一行内尽可能的匹配

| 贪婪型 | 懒惰型 |
| :—–: | :——: |
| * | *? |
| + | +? |
| {n, } | {n, }? |

Avatar photo
我是 zhyDaDa

前端/UI/交互/独立游戏/JPOP/电吉他/游戏配乐/网球/纸牌魔术

发表回复