如何用自然语言编写正则表达式回答:为什么人们要捍卫正则表达式语法?

2025-06-10

如何用自然语言编写正则表达式

回答:为什么人们要捍卫正则表达式语法?

如何用自然语言编写正则表达式

众所周知,正则表达式是 JavaScript 最强大的功能,但与此同时,即使是经验丰富的开发人员,也会遇到一些难题。几个月后,阅读你的正则表达式有时会变得非常困难。在今天的文章中,我们将学习如何用自然语言编写正则表达式。

超级富有表现力

两天前,一个颠覆性的新库诞生了。这是一个 JavaScript 库,它允许你用近乎自然的语言构建正则表达式——无需任何额外的依赖,并且代码占用空间极小(压缩 + gzip 压缩后代码大小不到 3kb!)。

首先,为什么我们需要一个新的正则表达式库?答案很简单:即使正则表达式如此强大,但编写正则表达式的语法却过于复杂。大多数时候,我们需要再次阅读正则表达式的文档来创建新的正则表达式。

这个库解决了语法复杂的问题。它使用正常的自然语言词汇来创建正则表达式。

安装

与任何其他 npm 包一样,您可以使用 npm 或 yarn 安装此库。

npm i super-expressive --save

用法

要使用这个库,首先您需要导入这个库。

const SuperExpressive = require('super-expressive');

例子

在字符串中查找多个 hello。

SuperExpressive()
  .allowMultipleMatches
  .string('hello')
  .toRegex();
// ->
/hello/g

查找 CaseInsenstive Hello。

SuperExpressive()
  .caseInsensitive
  .string('HELLO')
  .toRegex();
// ->
/HELLO/i

捕获 16 位十六进制数的值,例如0xC0D3

const SuperExpressive = require('super-expressive');

const myRegex = SuperExpressive()
  .startOfInput
  .optional.string('0x')
  .capture
    .exactly(4).anyOf
      .range('A', 'F')
      .range('a', 'f')
      .range('0', '9')
    .end()
  .end()
  .endOfInput
  .toRegex();

// Produces the following regular expression:
/^(?:0x)?([A-Fa-f0-9]{4})$/

同样,您可以使用此库以自然语言创建任何正则表达式。希望您已经学会了如何用自然语言编写正则表达式。

完整文档

如何使用 Intersection Observer API 检查元素是否在视口中

鏂囩珷鏉ユ簮锛�https://dev.to/narendersaini32/how-to-write-regex-in-natural-language-158j
PREV
100+ 免费插画资源,助您完成个人或客户项目
NEXT
如何在 React 中创建加载更多逻辑