티스토리 뷰

정규표현식은 언어를 표현하는 수학적인 방법입니다. 원래의 정규표현식은 나열, 선택, 반복으로 많은 언어를 표현하며, 어휘나 간단한 구문적 구조를 표현하기 위해 유용한 도구입니다.

regex는 정규표현식을 프로그램에서 이용하는 방법을 통칭합니다. 프로그래밍 언어마다 regex 표현을 위한 구문과 라이브러리 클래스를 제공하고 있습니다. 이것은 문자열에 대한 간단한 검색이나 데이터 추출, 변환 등에 편리하게 사용할 수 있는 기능으로 자바 뿐 아니라 자바스크립트와 파이썬 등에서 문자열을 다루기 위해 많이 사용되고 있습니다.

흔히 문자열을 쪼개거나 replace 하는 등의 라이브러리 메소드들은 정규표현식의 개념을 포함하고 있습니다. 자바의 tokenize나 split 같은 함수가 그런 예입니다. 이들 함수에서 정규표현식의 역할은 입력을 처리함에 있어 어떤 글자를 받아들이고 어떤 글자는 무시할 것인지(공백문자)를 지정하는 방법입니다. 그래서 스트링 클래스에는 정규표현식을 매개변수로 받는 메소드가 많습니다. 또한 regex 라이브러리는 아주 복잡한 조건이나 규칙을 처리할 수 있는 강력한 표현력을 가지고 있어서 정규표현식의 표기법과 사용법을 알고 있으면 가끔씩 부딪히는 정규표현식 코드를 이해하는데 도움이 될 뿐 아니라 문자열을 다루는 코드 작성에 유용하게 쓸 수 있습니다.

이 튜토리얼에서는 정규표현식의 사용법을 예제를 중심으로 살펴봅니다. 테스트 프로그램으로 오라클 사이트에서 제공하는 자바 프로그램을 변형하여 이용합니다. 자세한 설명이나 각 언어 별로 코딩에 필요한 세부 사항은 아래의 링크에 있는 자료를 참고할 수 있습니다.

이어지는 글에서 자바의 regex에 대해 자세히 살펴보겠습니다. 다른 언어도 기본 사용법은 거의 비슷합니다.

본론으로 들어가기 전에 먼저 알고 있어야 할 중요한 용어를 살펴보겠습니다.

  • 패턴 : 정규표현식을 프로그램 상에서 나타내는 법이다. 자바에서는 쌍따옴표 문자열로 패턴을 표현한다. 자바스크립트같은 언어는 / ... /와 같이 특별한 구문을 이용하기도 한다.
  • 입력문장 : 정규표현식은 문장(입력문자열)에 대해서 검사할 수 있는 조건을 표현하는데 이를 검사하기 위해서는 문장을 제공해야 한다. 보통은 프로그램이 사용자에게 입력으로 받은 부분이 입력문장이 된다. 
  • 매치 : 입력문장과 패턴이 있으면 매치를 할 수 있다. 입력 문장이 패턴의 규칙을 만족하면 매치되었다라고 한다. 또는 입력 문장 중에서 패턴에 매치되는 부분을 찾는 일을 해주기도 한다.
  • regex 엔진 : 위와 같이 입력 문장과 패턴을 가지고 매치를 해주는 라이브러리 또는 시스템을 엔진이라고 한다. 이것은 자바의 경우에는 라이브러리 클래스로 구현되어 있다. 

[참고사이트]

regex 사이트 https://regexone.com/

오라클 자바 튜토리얼의 regex 부분

닷넷 regex 튜토리얼

https://www.codeproject.com/Articles/9099/The-Minute-Regex-Tutorial

자바스트립트 regex 튜토리얼
https://www.w3schools.com/jsref/jsref_obj_regexp.asp

파이썬 regex 튜토리얼

https://www.datacamp.com/community/tutorials/python-regular-expression-tutorial

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함