티스토리 뷰

오라클 사이트에서는 자바 튜토리얼 중 하나로 regex를 훌륭하게 소개하는 파트를 제공합니다. 이 튜토리얼의 특징은 자바의 regex 기능을 테스트해 볼 수 있는 프로그램을 제공해 주는 것입니다. 이것을 RegexTestHarness라는 이름의 자바 클래스인데 main 함수를 포함하고 있는 이 클래스를 컴파일해서 실행하면 regex를 공부하면서 테스트할 수 있는 훌륭한 프로그램이 얻어집니다. 다음 링크에서 그 프로그램 소스를 확인해 보기 바랍니다.

https://docs.oracle.com/javase/tutorial/essential/regex/

 그런데 이 프로그램을 몇 가지 점에서 좀더 편리하게 수정한 프로그램이 아래 링크에 제공됩니다. 이것은 컴파일러 과목의 실습을 위해 사용 기능 몇가지만 수정한 것으로 오라클의 저작권을 위배하지 않는 선에서 사용가능합니다. 수정하지 말고 쓰라고 되어 있지만 한글화와 반복 기능 정도 추가한 것이니 문제가 되지는 않겠지요? 그리고 이 코드도 제약없이 공개하여 사용하고자 합니다.

RegexTestHarnessEjlee.java
0.00MB

정규표현식을 테스트하기 위해서는 다음과 같은 용어를 알고 있어야 합니다. 

  • 입력문자열 : 테스트할 대상이 되는 문자열이다. 이것을 가지고 정규표현식에서 지정한 규칙을 만족하는지, 또는 그러한 규칙을 만족하는 부분문자열을 찾는 등의 작업을 regex를 이용해서 할 수 있다. 
  • regex 문자열 : 언어의 구문과 규칙에 따라 정규표현식을 기술한 문자열이다. 이것도 역시 문자열의 하나로 regex 모듈에 의해 해석되어 어휘의 규칙을 표현하게 된다.
  • 정규표현식을 만족하는지 검사 : 정규표현식은 반복과 선택, 문자의 종류 등을 지정하는 규칙으로 주어진 입력 문자열은 그러한 정규표현식의 규칙을 만족하는 부분을 포함할 수도 있고 아닐 수도 있다. 일반적으로 검사란 그 문장에 해당 정규표현식을 만족하는 부분 문자열이 있는지 여부를 true/false로 돌려준다.
  • 그룹 : 정규표현식으로 나타내지는 한 어휘 중에서도 일부 부분을 묶어서 그룹으로 표현할 수 있으며, 그러한 그룹을 따로 검사하여 돌려주는 기능이 regex의 일부로 지원된다. 

수정된 java 파일은 원래 파일에서 다음과 같이 입력과 출력 기능을 추가하였다. 메뉴로 다음 기능을 선택할 수 있다.

(1) 한 입력에 대해 여러 가지 정규표현식을 반복하여 적용 : 한 입력에 대해 여러 가지 정규표현식을 테스트해 볼 수 있는 모드이다. 긴 입력을 넣고 여러 가지 형태의 정규표현식으로 그 입력 안에 있는 문자열들을 테스트할 수 있다.

(2) 한 정규표현식에 대해 여러 가지 입력을 반복하여 검사 : 정규표현식이 먼저 정해지고 여러 가지 입력을 이용해 정규표현식이 어떤 부분에 대해 만족되고 어던 부분에 대해서는 만족되지 않는지 검사할 수 있다.

(3) 한 정규표현식에 대해 여러 가지 입력을 반복하여 검사하고 그룹을 모두 출력 : (2)번 기능에서 그룹을 추가하여 정규표현식 안에 들어있는 여러 부분식을 확인할 수 있는 기능이다. 

- 세 가지 모드 중 하나를 선택할 수 있고, 각 단계를 반복하다가 입력에서 바로 엔터키를 치면 메뉴로 돌아감

컴파일하여 아래와 같이 실행되는 것을 확인하세요. 이것을 이용하여 다음 글에서부터 정규표현식의 자바 표기법과 사용법을 차례로 살펴보겠습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함