저는 학생들이 정규 표현식을 배우는 데 도움이되는 도구를 작성하고 있습니다. 아마도 Java로 작성하고있을 것입니다.Perl 스타일의 정규식 인터프리터가 기본 또는 확장 된 정규식 인터프리터처럼 동작하도록하십시오.
아이디어는 다음과 같습니다. 학생이 정규식을 입력하고 텍스트의 어떤 부분이 정규식과 일치하는지 보여줍니다. 충분히 간단합니다.
- 기본 정규 표현식 (생각 : 그렙)
- 확장 정규 표현식 (생각 : egrep을)
- 펄의 부분 집합
는하지만 다음과 같은 몇 가지 정규식 "맛"을 지원하고자 등 w \ 문자 클래스, \ s을 포함하여 정규 표현식,
- SED 스타일의 정규 표현식
JAV a에는 java.util.Regex 클래스가 있지만 기본 및 확장 RE의 수퍼 집합 인 Perl 스타일의 정규 표현식 만 지원합니다. 내가 필요한 것은 주어진 정규 표현식을 취하여 주어진 풍미의 일부가 아닌 메타 문자를 벗어나는 방법입니다. 그런 다음 Regex 객체에 줄 수 있고 선택된 RE 인터프리터 용으로 작성된 것처럼 동작합니다. 다음 정규식 주어진 예를 들어
:
^\w+[0-9]{5}-(\d{4})?$
기본 정규식으로, 그것은으로 해석 될 것이다 : 확장 된 정규 표현식으로
^\\w\+[0-9]\{5\}-\(\\d\{4\}\)\?$
, 그것은 다음과 같습니다
^\\w+[0-9]{5}-(\\d{4})?$
그리고 Perl 스타일 정규식은 원래 표현식과 동일합니다.
정규 표현식에 대한 정규 표현식을 사용하면 정규 표현식을 통해 검색을 수행하고 비 메타 문자를 인용 할 수 있습니까? 내가 뭘 할 수 있을까? 사용할 수있는 대체 Java 클래스가 있습니까?