YStudio Y++

正则类

Y++ / YStudio 开发文档 · 一点滴

类对象支持库(不是扁平命令)。路径:支持库 → 正则类。

类型名必须写完整「正则类」。声明时自动创建,一般无需再调 创建*。

硬约束

  1. 类型名必须写「正则类」。
  2. 先 创建表达式,再取匹配/替换。
  3. 匹配序号与子匹配序号均从 1 起。
  4. 替换式可用 $1、$2 引用捕获组(ECMAScript)。
  5. 方法调用必须带括号。

快速开始

正则类 r
如果 (r.创建表达式("\\d+", "a12b34", 真, 假, 真)) {
    输出(到文本(r.取匹配数量()))
    输出(r.取匹配文本(1))
}

正则类/创建

共 1 条。

创建正则

  • 签名:通用 创建正则()
  • 说明:创建一个正则对象。一般直接写「正则类 r」即可(声明时自动创建);「创建正则()」仅在需要显式赋值时使用。

正则类/方法

共 7 条。

创建表达式

  • 签名:逻辑 创建表达式(文本 表达式, 文本 源文本, [逻辑 区分大小写=真], [逻辑 多行=假], [逻辑 全局=假])
  • 说明:编译正则并对源文本立即执行匹配;成功返回真(匹配数为 0 也算成功)。
  • 参数一│文本 表达式: 正则表达式(ECMAScript)。
  • 参数二│文本 源文本: 待匹配文本。
  • 参数三│[逻辑 区分大小写=真]: 假则忽略大小写。
  • 参数四│[逻辑 多行=假]: 真则按行匹配(便于 ^/$)。
  • 参数五│[逻辑 全局=假]: 真则找全部匹配;假则只取第一个。

取匹配数量

  • 签名:整数 取匹配数量()
  • 说明:返回当前已匹配到的次数(整数)。

取匹配文本

  • 签名:文本 取匹配文本([整数 匹配序号=1])
  • 说明:取第 N 次完整匹配文本;序号从 1 起。
  • 参数一│[整数 匹配序号=1]: 第几次匹配。

取子匹配数量

  • 签名:整数 取子匹配数量([整数 匹配序号=1])
  • 说明:取指定匹配的捕获组数量(不含整匹配本身)。
  • 参数一│[整数 匹配序号=1]: 第几次匹配。

取子匹配文本

  • 签名:文本 取子匹配文本(整数 匹配序号, 整数 子序号)
  • 说明:取第 N 次匹配的第 M 个捕获组文本;序号均从 1 起。
  • 参数一│整数 匹配序号: 第几次匹配。
  • 参数二│整数 子序号: 第几个捕获组。

替换

  • 签名:文本 替换(文本 替换式)
  • 说明:用当前表达式对源文本做替换,返回结果文本。
  • 参数一│文本 替换式: 可用 $1、$2 引用捕获组。

取错误

  • 签名:文本 取错误()
  • 说明:取最近一次失败原因;无错误返回空文本。

易错对照

错误 正确
类型写成正则 必须「正则类」
反斜杠未加倍 源码里 \\d+
匹配序号从 0 匹配/子匹配序号从 1

相关

文本操作 · 编码