# @ark/regex 中文文档

规范地址：https://npmcn.com/package/%40ark/regex/

版本：0\.0\.14
npm 元数据更新时间：2026-10-23T13:07:53.483Z
中文译文更新时间：2026-11-06T19:22:00.215Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ark/regex
原文对照：https://npmcn.com/package/%40ark/regex/?lang=original
项目主页：https://github.com/arktypeio/arktype#readme
源码仓库：https://github.com/arktypeio/arktype

弃用说明：@ark/regex is no longer published\. Install arkregex instead\.

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：48.6 kB，21 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2025-10-14T04:51:00.848Z
- 最新版本发布：2026-10-20T19:12:05.466Z
- 近 30 天下载量：128315（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 11 个）

## 中文简介

用类型替换新 RegExp( )

## 安装

```sh
npm install @ark/regex
```

也可以使用：`pnpm add @ark/regex`、`yarn add @ark/regex`、`bun add @ark/regex`

## README

# 阿尔克雷格斯

倒车替换 `new RegExp()` 有类型

## 使用量

这个 `regex` 函数创建一个 `Regex` 类型 `.test()`, (中文(简体) ), `.exec()` 此外,静态地从本地JS语法中解析:

```ts
import { regex } from "arkregex"

const ok = regex("^ok$", "i")
// Regex<"ok" | "oK" | "Ok" | "OK", { flags: "i" }>

const semver = regex("^(\\d*)\\.(\\d*)\\.(\\d*)$")
// Regex<`${number}.${number}.${number}`, { captures: [`${number}`, `${number}`, `${number}`] }>

const email = regex("^(?<name>\\w+)@(?<domain>\\w+\\.\\w+)$")
// Regex<`${string}@${string}.${string}`, { names: { name: string; domain: `${string}.${string}`; }; ...>
```

你只需要开始 `pnpm install arkregex` (或您所选择的软件包管理器的等同内容)

以 TS 5.9+ 成绩最佳

### 特征

-   **类型**: 引用您已有正则表达式的字符串类型, 包括位置和命名的抓取
-   **均等**: 支持100% [特性](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions) 允许的 `new RegExp()`
-   **安全问题**: 语法错误, 如引用一个不存在的组, 现在是输入错误
-   **0 运行时间**: 改进类型安全而不影响捆绑大小

### 财务问题

#### 为什么不是一些模式 像 `[a-Z]` 更准确的推断?

构造这些类型的表达式的字符串字元类型是组合的,如果我们推断字符范围是这样的字元字元,会很快地爆炸.

我们试图在性能和精确度之间取得平衡 同时保证推断出的类型 最不准确 永远不正确.

#### 为什么它不工作 我的大规模RegExp?

如果你的表达式特别长或复杂,TypeScript将无法推断出它.

如果你的类型开始减慢 或者你看到可怕的 `Type is excessively deep...`,您可以用手动键入您的表达式 `regex.as`数字 :

```ts
const complexPattern = regex.as<`pattern-${string}`, { captures: [string] }>(
    "very-long-complex-expression-here"
)
```

#### 坚固吗?

`arkregex` 类型是 [广泛测试](https://github.com/arktypeio/arktype/tree/main/ark/regex/__tests__/regex.test.ts) 财务报告和审定财务报表 [基准](https://github.com/arktypeio/arktype/tree/main/ark/regex/__tests__/regex.bench.ts) 使用 [证明](https://github.com/arktypeio/arktype/tree/main/ark/attest#readme)。 。 。 .

如果其他的FAQ没有做到你所期望的, 请不要犹豫 [创建问题](https://github.com/arktypeio/arktype/issues/new)。 。 。 .

#### 我怎么才能用语法强调 `regex`? 吗?

这个 [ArkType 扩展名](https://marketplace.visualstudio.com/items?itemName=arktypeio.arkdark) 可安装以添加语法加亮到 `regex` 打电话.

## 常见问题

### @ark/regex 是什么？

用类型替换新 RegExp\( \)注意：该包已被作者标记为弃用——@ark/regex is no longer published\. Install arkregex instead\.

### 如何安装 @ark/regex？

在项目目录运行 npm install @ark/regex，或使用 pnpm add / yarn add / bun add。

### @ark/regex 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @ark/regex 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @ark/regex 可以商用吗？

@ark/regex 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @ark/regex 的下载量有多少？

根据 npm 官方下载统计，@ark/regex 在 2026/10/07 – 2026/11/05 这 30 天内被下载 128,315 次，日均约 4,277 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ark/regex 还在维护吗？

最新版本 0\.0\.14 发布于 2026/10/21（18 天前）；至今共发布 14 个版本，其中过去 12 个月发布了 11 个；首次发布于 2025/10/14。作者已将其标记为弃用，新项目建议寻找替代方案。

