자연어로 정규식을 작성하는 방법 답변: 사람들이 정규식 구문을 옹호하는 이유는 무엇입니까?



정규식은 JavaScript의 가장 강력한 기능이라는 것을 누구나 알고 있지만 동시에 숙련된 개발자에게도 어려움을 줄 수 있습니다. 몇 달 후에 정규식을 읽는 것이 언젠가는 너무 어려워집니다. 오늘 기사에서는 정규식을 자연어로 작성하는 방법을 배웁니다.

슈퍼 표현력



이틀 전에 새로운 판도를 바꾸는 라이브러리가 실현되었습니다. 이것은 거의 자연어로 정규 표현식을 구축할 수 있는 JavaScript 라이브러리입니다. 추가 종속성 없이 가벼운 코드 공간(축소 + gzip으로 3kb 미만!).

먼저 정규식을 위한 새 라이브러리가 필요한 이유입니다. 정규식은 매우 강력하지만 정규식의 구문을 작성하는 것은 너무 복잡하지만 대답은 간단합니다. 대부분의 경우 새 정규식을 만들기 위해 정규식 문서를 다시 읽어야 합니다.

이 라이브러리는 복잡한 구문 문제를 해결합니다. 일반 자연어 단어를 사용하여 정규식을 만듭니다.

설치

다른 npm 패키지와 마찬가지로 npm 또는 yarn을 사용하여 이 라이브러리를 설치할 수 있습니다.

npm i super-expressive --save

용법

이 라이브러리를 사용하려면 먼저 이 라이브러리를 가져와야 합니다.

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

예시

문자열에서 Mutiple hello를 찾습니다.

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

CaseInsenstive Hello 찾기.

SuperExpressive()
  .caseInsensitive
  .string('HELLO')
  .toRegex();
// ->
/HELLO/i
0xC0D3와 같은 16비트 16진수 값을 캡처합니다.

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})$/

마찬가지로 이 라이브러리를 사용하여 자연어로 모든 정규식을 만들 수 있습니다. 자연어로 정규식을 작성하는 방법을 배웠기를 바랍니다.

Full docs

How to check an element is in viewport using Intersection Observer API

좋은 웹페이지 즐겨찾기