이 기사는 Sebastian Seitz와 Almir Bijedic에 의해 동료 검토되었습니다. Sitepoint 컨텐츠를 최대한 활용 한 Sitepoint의 모든 동료 검토 자에게 감사합니다!
거의 모든 프로그래머는 때때로 어떤 형태로 정기적 인 표현식을 사용해야합니다. 많은 사람들에게 패턴 문법은 신비 롭고 어려워 보일 수 있습니다. 이 튜토리얼은 ABNF Pattern Syntax를 사용하고 읽기가 더 쉬운 REGEXP의 기능이 풍부한 대안 인 새로운 패턴 매칭 엔진 APG-EXP를 소개합니다.
키 포인트
APG-EXP는 ABNF 구문을 사용하여 일반 표현식에 대한 사용자 친화적 인 대안을 제공합니다.
APG-EXP는 설치 및 사용이 매우 간단하며 Node.js 환경 및 GitHub 직접 다운로드 옵션을 지원하여 다양한 프로젝트 설정에 액세스 할 수 있습니다.
APG-EXP에서 사용하는 ABNF 구문은 복잡한 패턴을 더 간단하고 읽기 쉬운 구성 요소로 나누며, 이는 일반적으로 신비한 정규 표현보다 직관적입니다.
APG-EXP는 재귀와 같이 javaScript에서 regexp에서 사용할 수없는 고급 패턴 매칭 기능을 지원하며, 이는 중첩 패턴과 일치하는 데 중요합니다.
이 라이브러리는 개발자가 패턴 매칭 로직의 문제를 효과적으로 식별하고 해결할 수 있도록 자세한 오류 처리 및 디버깅 도구를 제공합니다.
강력한 기능에도 불구하고 APG-EXP는 여전히 간단한 API를 유지하므로 기존 코드베이스에 대한 많은 수정이 필요없이 통합 및 사용할 수 있습니다.
빠른 비교
이메일 주소를 확인하고 이와 같은 것을 만난 적이 있습니까? -
패턴 일치 엔진은이 작업에 적합한 도구입니다. 이것은 잘 설계되고 잘 쓰여진 정규 표현입니다. 잘 작동합니다. 그래서 당신은 또 무엇을 좋아하지 않습니까? -
글쎄, 당신이 정규 표현의 전문가라면 아무것도 없습니다. 그러나 우리의 나머지 사람들에게는
일 수 있습니다.
-
읽기가 어렵습니다
쓰기가 더 어렵습니다
유지하기가 어렵습니다
-
정규 표현 문법은 길고 긴 역사를 가지고 있으며 매일 프로그래머로 사용하는 많은 도구와 언어에 깊이 통합되었습니다.
그러나 거의 같은 시간 동안 대체 구문이 있는데, 이는 인터넷 기술 사양의 작가와 소비자들 사이에서 정규 표현의 모든 기능을 가지고 있지만 JavaScript 프로그래밍 세계 사용에는 거의 없습니다. . 즉, RFC 5234 및 RFC 7405의 IETF에 의해 공식적으로 정의 된 향상된 Bacos-Nor 패러다임 (ABNF)입니다. -
ABNF에서 동일한 이메일 주소가 어떻게 보이는지 봅시다.
-
물론 는 컴팩트하지 않지만 HTML 및 XML과 마찬가지로 인간과 기계가 읽도록 설계되었습니다. 나는 와일드 카드 검색 패턴에 대한 약간의 이해 만하면 "간단한 영어"에서 일어나는 일을 거의 읽을 수 있습니다.
전자 메일 주소는 @- 로 분리 된 로컬 부품 및 도메인으로 정의됩니다.
로컬 부분은 단어와 선택적 점 분리 된 단어 가 이어집니다.
도메인은 하나 이상의 점 분리 된 서브 도메인과 단일 최상위 도메인 입니다.
당신이 여기서 알지 못하는 유일한 것은 다음과 같습니다.
와일드 카드 문자
가 "0 이상"을 의미하는 것처럼, 1 - 는 "하나 이상"을 의미하는 반면, 2*6은 최소 2 배, 최대 6 회 반복을 의미합니다.
/ 별도의 대안
%d는 소수점 문자 코드와 문자 코드 범위를 정의합니다 -
예를 들어 �5는 #, ASCII DECIMAL 35 �5-90은 A-Z 범위의 모든 문자를 의미합니다.
-
regexp 및 apg-exp 의이 이메일 주소는 예 1에서 비교됩니다.
APG-EXP는 regexp의 모양과 느낌을 갖도록 설계된 패턴 일치 엔진이지만 패턴 정의에는 ABNF 구문을 사용합니다. 다음 몇 가지 섹션에서는 다음을 안내하겠습니다 :
-
apg-exp를 응용 프로그램에 통합하는 방법
abnf 구문 에 대한 간단한 안내서
apg-exp 사용-일부 예제
다음에 갈 곳 - 자세한 내용, 고급 예
업로드 및 런 호우를 얻으려면 -
npm -
node.js 환경에서 작업하는 경우 프로젝트 디렉토리에서 실행됩니다 :
그런 다음 require ()를 사용하여 코드에서 액세스 할 수 있습니다.
예 :
github
github에서 코드 사본을 얻으려면 리포지토리를 프로젝트 디렉토리로 복제 할 수 있습니다.
또는 zip 파일로 다운로드하십시오.
그런 다음 page.html : 에서
cdn
위 내용은 정규 표현의 대안 : APG-EXP의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!