如何用自然语言编写正则表达式
回答:为什么人们要捍卫正则表达式语法?
众所周知,正则表达式是 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