2017-10-16 19 views
0

이 문서를 보았습니다 : https://swtch.com/~rsc/regexp/regexp1.html Perl, Java 및 기타 많은 언어에서 재귀 백 트레이스를 기반으로하는 "느린"RegExp를 사용하지만 grep 및 awk (Go도)는 훨씬 빠른 유한 자동 표시를 사용한다고 주장합니다. 나는. regexp는 FA로 변환되어 실행됩니다. 이 신문은 또한 모든 언어가 구현이 더 복잡하지만 FA 기술로 전환해야한다고 주장합니다. 현재 자바 스크립트 구현에 편이성이 있는지 궁금합니다.유한 오토마타 또는 재귀 백 트레이스를 기반으로하는 v8/firefox RegExp 구현입니까?

+1

JS regex는 Perl과 유사하지만 (https://www.ecma-international.org/ecma-262/5.1/#sec-15.10) 엔진이 "느린"것은 아닙니다. 이 기사에서 사용 된 패턴은 너무 인공적이어서 'a? a? aaa'는'a {3,6}'으로 작성되어야하며 가능한 빠릅니다. 이것은 나쁜 패턴이 정규 표현식 실행을 늦출 수있는 예에 불과합니다. 패턴을 올바르게 작성하고 "올바른"작업을 수행하면 정규 표현식에 어떤 언어로도 큰 어려움이 없을 것입니다. –

+0

정말 코딩 문제가 아닙니다 ... 누구든지 V8 및 SpiderMonkey (firefox의 현재 JS 엔진)에 대한 소스 코드를 검색하고 찾을 수 있습니다. –

답변