Skip to main content
QUICK REVIEW

[논문 리뷰] Derivative Based Extended Regular Expression Matching Supporting Intersection, Complement and Lookarounds

Ian Erik Varatalu, Margus Veanes|arXiv (Cornell University)|2023. 09. 25.
Software Engineering Research인용 수 4
한 줄 요약

이 논문은 교차, 보완, 양의 및 음의 앞서보기( lookahead 및 lookbehind )를 지원하는 기호 미분 기반 정규표현식 엔진을 제안한다. 이는 정확하고 효율적이며 의미적으로 일관된 매칭을 가능하게 한다. 이 방법은 매칭 세트에 대한 효과적인 부울 대수를 활용하여 부울 재작성 규칙을 통한 최적화를 가능하게 하며, 기존 엔진에서 백트래킹 접근 방식으로 인한 팩토리얼 폭발로 인해 해결이 불가능한 문제들에 대해서도 타당성을 입증한다.

ABSTRACT

Regular expressions are widely used in software. Various regular expression engines support different combinations of extensions to classical regular constructs such as Kleene star, concatenation, nondeterministic choice (union in terms of match semantics). The extensions include e.g. anchors, lookarounds, counters, backreferences. The properties of combinations of such extensions have been subject of active recent research. In the current paper we present a symbolic derivatives based approach to finding matches to regular expressions that, in addition to the classical regular constructs, also support complement, intersection and lookarounds (both negative and positive lookaheads and lookbacks). The theory of computing symbolic derivatives and determining nullability given an input string is presented that shows that such a combination of extensions yields a match semantics that corresponds to an effective Boolean algebra, which in turn opens up possibilities of applying various Boolean logic rewrite rules to optimize the search for matches. In addition to the theoretical framework we present an implementation of the combination of extensions to demonstrate the efficacy of the approach accompanied with practical examples.

연구 동기 및 목표

  • 기호 미분 프레임워크 내에서 교차, 보완, 앞서보기 기능을 지원하는 정규표현식 엔진을 개발하는 것.
  • 이 확장 기능들의 조합이 부울 연산에 대해 닫혀 있는 매칭 의미론을 형성하여 효과적인 부울 대수를 이룬다는 것을 보여주는 것.
  • 기존의 백트래킹 또는 표준 비백트래킹 엔진으로는 비현실적이었던 문제들에 대해 실용적이고 고성능의 정규표현식 매칭을 가능하게 하는 것.
  • 모든 문맥에 민감한 앵커(예: 단어 경계)가 앞서보기 기능만으로 표현될 수 있다는 추측을 증명하고 구현하는 것.
  • 부울 재작성 규칙과 효율적인 캐싱 기법을 통한 최적화 기반을 마련하는 것.

제안 방법

  • 논문은 .NET 7의 비백트래킹 정규표현식 엔진에 기호 미분을 도입하여 교차(&), 보완(~), 앞서보기(?=, ?!, ?<=, ?<!)를 지원하도록 확장한다.
  • 정확성과 결정성을 보장하는 기반으로 기호 미분에 기반한 이론적 프레임워크를 도입한다.
  • 매칭 세트 의미론이 효과적인 부울 대수를 형성함을 보여주며, 최적화를 위한 체계적인 부울 재작성 규칙 적용이 가능하다.
  • 입력 문자에 대한 정규표현식의 미분을 계산하고 매칭 위치 및 조건을 추적하는 기반으로 기반된 평가 엔진을 사용한다.
  • 앞서보기 기능은 입력을 소비하지 않고 각 위치에서 조건을 평가하며, 매칭 유효성 여부를 판단하기 위해 파생된 조건을 사용한다.
  • 문자 클래스에 대한 조건(예: ψ)을 저장하고, 줄 바꿈과 같은 금지 문자를 만날 경우 이를 무효화함으로써 앞서보기 기능에 대한 캐싱 기법을 제안한다.
Figure 2 . Time taken to find a matching paragraph containing all required substrings in any order in a 9kB sample text.
Figure 2 . Time taken to find a matching paragraph containing all required substrings in any order in a 9kB sample text.

실험 결과

연구 질문

  • RQ1기호 미분 기반 정규표현식 엔진에서 교차, 보완, 앞서보기 기능을 의미 있게 조합할 수 있는가? 이는 결정성이나 성능을 희생시키지 않고 가능할 수 있는가?
  • RQ2이러한 확장 기능들의 조합이 부울 연산에 대해 닫혀 있는 매칭 의미론을 형성하여 효과적인 부울 대수를 이룬다 할 수 있는가?
  • RQ3백트래킹 엔진에서 팩토리얼 폭발이 발생하는 문제들, 예를 들어 임의의 순서로 매칭되는 부분 문자열을 찾는 문제들을 이 확장된 엔진이 해결할 수 있는가?
  • RQ4이전 연구에서 제기된 바와 같이, 모든 문맥에 민감한 앵커(예: 단어 경계)가 앞서보기 기능만으로 표현될 수 있는가?
  • RQ5부울 재작성 규칙과 캐싱 기법을 통해 복잡한 확장 기능을 가진 정규표현식 매칭에서 성능 향상은 어느 정도 이루어질 수 있는가?

주요 결과

  • 확장된 정규표현식 엔진은 .NET 7의 백트래킹 및 비백트래킹 엔진에서 팩토리얼 폭발을 유발하는 임의의 순서로 매칭되는 부분 문자열을 찾는 문제들을 성공적으로 처리한다.
  • 확장된 정규표현식 시스템의 매칭 의미론은 효과적인 부울 대수를 형성하며, 부울 재작성 규칙을 통한 시스템적 최적화가 가능하다.
  • 모든 문맥에 민감한 앵커, 단어 경계 및 라인 앵커를 모두 앞서보기 기능만으로 표현할 수 있으며, 이는 체계적으로 증명되고 구현되었다.
  • 짧은 컨텍스트를 가진 앞서보기 기능(예: ^, $, \b)에 대해서는 선형 시간 복잡도를 보이며, 더 긴 앞서보기 기능(예: (?<=a.*)b)은 조건 캐싱을 통해 이중 시간 복잡도를 피할 수 있도록 최적화된다.
  • 지연 매칭(laziness)은 보완과 교차를 사용하여 모방할 수 있으며, 예를 들어 a[^b\n]*b 또는 (a.*)&(~(.*b.*)b)와 같이 지연 양자기 없이 동일한 의미론을 제공한다.
  • 구현은 .NET 7의 비백트래킹 엔진 백엔드를 재사용하며, 새로운 연산자를 추가함으로써 성능과 정확성을 유지하면서도 새로운 사용 사례를 가능하게 한다.
Figure 3 . Time taken to find a matching paragraph containing all required substrings in any order in the full 20MB sample text.
Figure 3 . Time taken to find a matching paragraph containing all required substrings in any order in the full 20MB sample text.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.