정규 표현식 테스트

로그프레소 쿼리 명령어(예: rex, textfile) 또는 함수(예: replace()) 중에 정규표현식과 함께 쓰이는 것들이 있습니다. 로그프레소 플랫폼은 정규표현식을 검증할 수 있는 기능을 제공합니다.

정규식 테스트 메인 화면

테스트 문자열에 시험 대상 문자열을 입력하고 정규표현식에 표현식을 입력하면, 테스트 문자열 중에서 정규표현식과 일치하는 문자열을 결과에 보여줍니다.

정규표현식

자바 정규표현식을 입력합니다. 다음과 같은 정규 표현식 지시자를 사용하여 정규표현식을 입력할 수 있습니다.

지시자설명
[abc]a, b, c 중 하나의 문자
[^abc]a, b, c 를 제외한 하나의 문자
[a-z]a부터 z까지의 ASCII 소문자 중 하나
[a-zA-Z]a부터 z까지, 혹은 A부터 Z까지 ASCII 대소문자 중 하나
^줄의 시작 부분
$줄의 끝 부분
\A문자열의 시작 부분
\z문자열의 끝 부분
.임의의 문자
\s임의의 공백 문자
\S공백 문자 이외의 문자
\d임의의 숫자
\D숫자 이외의 문자
\w글자, 숫자, 밑줄 문자
\W특수문자
\b문자 경계
(...)정규 표현식 그룹
(a|b)a 혹은 b
a?0개 이상의 a
a*0개 혹은 하나의 a
a+0개 혹은 하나 이상의 a
a{3}3개의 a
a{3,}3개 이상의 a
a{3,6}3개 이상 6개 이하의 a

전체 정규표현식 명세는 다음 링크를 참고하시기 바랍니다: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/regex/Pattern.html

테스트 문자열

정규표현식을 매칭하려는 시험 대상 문자열을 입력합니다.

결과

테스트 문자열에서 정규표현식과 일치하는 부분은 굵게 표시됩니다.

그룹 결과

정규표현식 그룹으로 인식된 값들이 표시됩니다. 정규표현식에서 이름이 부여된 그룹은 그룹 이름이 같이 표시됩니다.

날짜 포맷

날짜 지시자로 구성된 포맷을 입력합니다. 정규표현식 그룹 결과를 모두 이어붙인 문자열을 지정된 날짜 포맷으로 해석한 결과가 하단에 표시됩니다.

다음은 날짜 형식을 표현하는 지시자입니다.

지시자설명지시자가 표현하는 날짜 표기 문자열
G기원전/후AD
y연도1996; 96
MJuly; Jul; 07
w년단위 주27
W월단위 주2
D년단위 일189
d월단위 일10
F요일 번호(1 ~ 7)2
E요일Tuesday; Tue
a오전/오후PM
H시간 (0-23)0
k시간 (1-24)24
K오전/오후 시간 (0-11)0
h오전/오후 시간 (1-12)12
m30
s55
S밀리초978
z시간대 (일반 표기)Pacific Standard Time; PST; GMT-08:00
Z시간대 (RFC 822 표기)-0800

"도움이 필요하십니까?"를 누르면 정규 표현식 도움말날짜 포맷 도움말을 볼 수 있습니다.

예제

다음 예제를 통해 웹 로그에서 정규표현식을 사용해 로그 날짜를 추출하는 방법을 알아볼 수 있습니다.

  1. 정규표현식에 다음 문자열을 임력합니다.

    \[(?<date>\d{2}/\S{3,10}/\d{4}:\d{2}:\d{2}:\d{2} \+\d{4})\]
    
  2. 테스트 문자열에 다음 문자열을 입력합니다.

    10.0.219.59 - - [18/May/1998:11:43:07 +0000] "GET /english/images/comp_bu_calendar_on.gif HTTP/1.0" 200 1191
    
  3. 날짜 포맷에 다음 문자열을 입력합니다.

    dd/MMM/yyyy:HH:mm:ss Z
    
  4. 로케일영어를 선택합니다.

  5. 이제 결과, 그룹 결과, 날짜 해석 결과에 출력되는 문자열을 확인합니다.

    예제 실행 결과

    • 결과테스트 문자열에 입력한 문자열 중에서 입력한 정규 표현식과 일치하는 부분을 보여줍니다.
    • 그룹 결과는 정규 표현식에 그룹 표현식(예제에서는 ?<date>)이 있을 때, 그룹별로 매칭된 문자열을 보여줍니다.
    • 날짜 해석 결과는 정규표현식으로 매칭된 문자열을 날짜 포맷으로 지정한 규칙에 따라 파싱해 보여줍니다.