2013-09-03 2 views
0

바이트 코드 명령어를 검색하기위한 프로젝트가 있으며 일치 패턴에 정규 표현식을 사용할 수 있도록 확장하고 싶습니다.파이썬 정규 표현식 엔진에 특수 문자 추가하기

내가하고 싶은 것의 요점은 내가 ISTORE 일치하는 등의 일을 할 수 있습니다/사용자 정의 문자 클래스를 설정입니다 다음 지침 중 하나를

ISTOREISTORE_0ISTORE_1ISTORE_2ISTORE_3

그리고 뭔가 ILOAD ... ILOAD_n과 비슷합니다.

ISTORE 및 ILOAD는 \s와 같은 메타 문자와 유사합니다. 여러 문자가 필요합니다.

기본적으로 나는 점프 점을 찾고있어 자신의 메타 문자를 구현할 수있는 방법을 찾을 수 있습니다.

+2

나는 그것을 얻지 못한다. 무엇을 정규식과 일치 시키려 하는가? – PepperoniPizza

+1

지금 무엇을 가지고 계십니까? 당신은 정규식 튜토리얼을 찾고 있습니까? 네가 무엇을 요구하는지 모르겠다. –

+0

"나만의 점을 찾고있어 자신 만의 특수 문자를 구현할 수있는 방법을 찾을 수 있습니다." 나는 파이썬에서 정규 표현식에서 "ISTORE"를 사용할 수 있고 ISTORE, ISTORE_0 ... ISTORE_n과 공백을 매치시키는 방법을 원한다. 정규 표현식 작성에 익숙하지만 엔진 자체를 엉망으로 만들려하지 않았습니다. – kstev

답변

2

당신은 (매우 어려울 것) 정규식 엔진을 수정할 필요가 없습니다

당신은 당신이 re.escape

를 사용하는 것과 동일한 방법으로 파이썬의 정규식의 당신의 맛을 변환하는 도우미 함수가 필요

+0

그것은 정규식의 맛이 아니에요. 메타 문자입니다. Java 바이트 코드에 205 개의 opcode가 있다고 생각하면이 방법은 찾기 및 바꾸기 메소드를 가지고 있다는 사실에별로 매력을 느끼지 못합니다. – kstev

+1

regex 전처리도 권장됩니다. http://stackoverflow.com/a/1922324/2036917 –

+0

그래서 매번 (ISTORE_0 | ISTORE_1 | ISTORE_3 | ISTORE)로 ISTORE를 대체해야합니다? 놀라 울 정도로 비효율적입니다. – kstev