본문 바로가기

프로그래밍/정규표현식9

[REGEX] 조건 달기 References Learning Regular Expressions Contents 조건 (conditions) 역참조를 사용하는 조건 처리 전후방탐색을 사용하는 조건 처리 드물게 사용하는 기능이긴 하지만, 정규표현식은 표현식 내에 조건 처리를 포함시킬 수 있습니다. 이번 포스팅에서는 이와 관련된 내용을 살펴보겠습니다. 왜 조건을 사용하는가? (123)456-7890과 123-456-7890은 모두 올바른 전화번호 형식입니다. 1234567890, (123)-456-7890, (123-456-7890은 숫자의 수는 맞지만, 형식이 바르지 않습니다. 정규표현식을 어떻게 작성하면 아래의 예문에서 올바른 형식의 전화번호만을 찾을 수 있을까요 ? 123-456-7890 (123)456-7890 (123)-4.. 2022. 4. 10.
[REGEX] 전방탐색과 후방탐색 References Learning Regular Expressions Contents 전방탐색 (Looking Ahead) 후방탐색 (Looking Behind) 부정형 전후방탐색 (Nagative Lookaround) 이전 포스팅들에서 사용한 표현식들은 모두 일치하는 텍스트를 가지고 있었지만, 종종 텍스트 자체를 찾기보다는 어디서 텍스트를 찾을지를 표시하는데 표현식을 사용하고 싶을 때도 있습니다. 그러려면 전후방탐색(lookaround)를 사용해야 하는데, 이번 포스팅에서는 이에 관해 살펴보도록 하겠습니다. 전후방탐색 먼저 예제로 시작해보도록 하겠습니다. 아래 예문은 HTML 포맷의 텍스트이며, 웹페이지에서 제목을 추출해야 한다고 가정합니다. HTML 페이지 제목은 HTML 코드에서 구역 내의 과 태.. 2022. 4. 10.
[REGEX] 역참조와 치환 작업 References Learning Regular Expressions Contents 역참조 (Backreferences) 치환 작업 (Replace Operations) C++, Python 예제 [REGEX] 하위 표현식 (Subexpression) 이전 포스팅에서 하위표현식을 사용해 문자들을 집합으로 묶는 방법을 살펴봤습니다. 이렇게 묶는 이유는 주로 반복되는 패턴 검색 작업을 통제하기 위함입니다. 이번 포스팅에서는 하위표현식에서 중요한 사용법인 역참조(backreferences)에 대해서 살펴보겠습니다. 역참조 이해하기 역참조가 언제 필요한지 이해하기 위해서 예제를 통해 살펴보겠습니다. HTML 개발자는 웹페이지에서 헤더 텍스트를 정의하고 만들고자, 헤더 태그를 사용합니다. 헤더 태그는 부터 까.. 2022. 4. 9.
[REGEX] 하위 표현식 (Subexpression) References Learning Regular Expressions Contents Subexpressions 이해 Subexpression으로 그룹화하기 중첩된 Subexpressions 지정한 문자를 검색하는 기능과 메타 문자는 정규표현식을 뒷받침하는 기본 기능입니다. 이번 포스팅에서는 하위 표현식(subexpression)을 사용해 여러 표현식을 어떻게 묶는지 살펴보겠습니다. Subexpressions 이해하기 [REGEX] 반복 찾기에서는 단어 하나가 여러 번 일치하는 경우를 살펴봤습니다. '\d+'는 하나 이상 연속된 숫자와 일치하고, 'https?:\/\/'는 http://나 https://와 일치합니다. 이 두 예시에서 '?', '*', '{2}'와 같은 반복 메타 문자는 자기 바로 앞에.. 2022. 4. 8.
[REGEX] 위치 찾기 (Position Matching) References Learning Regular Expressions Contents 단어 경계 지정하기 문자열 경계 정의하기 Multiline Mode 텍스트를 찾을 때, 텍스트 영역 내에 있는 특정 위치에서 텍스트를 찾아야 할 때도 있습니다. 이런 경우에 위치 찾기(position matching)이 필요하며, 이번 포스팅에서는 이와 관련한 내용을 살펴보겠습니다. 경계 지정하기 위치 찾기는 텍스트 문자열 안에서 반드시 일치해야 하는 위치를 지정할 때 사용합니다. 이러한 기능이 왜 필요한지 이해하기 위해서 다음 예문을 통해 살펴보겠습니다. The cat scattered his food all over the room. 위 예문에서 cat을 찾기 위해서 'cat' 패턴을 사용해봅시다. 그 결과는 다음.. 2022. 4. 7.
[REGEX] 반복 찾기 References Learning Regular Expressions Contents 하나 이상의 문자 찾기 ('+') 문자가 없거나 하나 이상 연속하는 문자 찾기 ('*') 문자가 없거나 하나인 문자 찾기 ('?') 구간 지정하기 ({}) greedy/lazy quantifiers [REGEX] 메타 문자 지난 포스팅에서 다양한 메타 문자와 특별한 클래스 집합을 사용해 개별 문자를 찾는 방법에 대해서 살펴봤습니다. 이번 포스팅에서는 여러 번 반복해 나타나는 문자나 문자 집합을 어떻게 찾는지 살펴보겠습니다. 몇 번 일치하는가? 지금까지의 포스팅들을 통해 정규표현식 패턴이 어떻게 일치하는지에 대한 기초에 대해 살펴봤습니다. 하지만 살펴봤던 예제에는 모두 심각한 한계가 한 가지 존재합니다. 예를 들어 이메.. 2022. 4. 6.
[REGEX] 메타 문자 References Learning Regular Expressions Contents 이스케이프 문자 공백 문자 찾기 특정한 문자 타입과 일치시키기 (숫자, 영숫자, 공백) POSIX 문자 클래스 [REGEX] 문자 하나 찾기 [REGEX] 문자 집합으로 찾기 이전 포스팅에서 간단한 메타 문자를 살펴봤습니다. 이번에는 특별한 문자나 문자 타입과 일치하는 메타 문자에 대해서 알아보도록 하겠습니다. 이스케이프 살펴보기 메타 문제에 대해 더 깊이 알아보기 전에 이스케이프(excape)에 대해 이해하는 시간을 먼저 가져보도록 하겠습니다. 메타 문자는 정규표현식 안에서 특별한 의미가 있습니다. 마침표(.)는 메타 문자로, 어떤 문자든 문자 하나와 일치합니다. 이와 유사하게, 여는 대괄호([)도 집합의 시작을 나.. 2022. 4. 5.
[REGEX] 문자 집합으로 찾기 References Learning Regular Expressions Contents 여러 문자 중 하나와 일치시키기 문자 집합 범위 사용하기 '제외하고' 찾기 지난 포스팅에서 어떤 문자와도 일치하는 마침표(.)에 대해서 배웠습니다. [REGEX] 문자 하나 찾기 [REGEX] 문자 하나 찾기 References Learning Regular Expressions Contents 문자 그대로 찾기 모든 문자 찾기 특수문자 찾기 이번 포스팅에서는 한 개 혹은 그 이상의 문자를 사용해 간단한 문자 검색을 어떻게 하는지 살펴봅니다. 본 junstar92.tistory.com 이번 포스팅에서는 문자 집합을 사용해서 특정 문자들과 문자 범위에 대해 일치시킬 수 있는 방법에 대해 알아보겠습니다. 여러 문자 중 하.. 2022. 4. 4.
[REGEX] 문자 하나 찾기 References Learning Regular Expressions Contents 문자 그대로 찾기 모든 문자 찾기 특수문자 찾기 이번 포스팅에서는 한 개 혹은 그 이상의 문자를 사용해 간단한 문자 검색을 어떻게 하는지 살펴봅니다. 본문에서 정규표현식 테스트는 아래의 사이트에서 수행했습니다. https://www.regextester.com/ Regex Tester and Debugger Online - Javascript, PCRE, PHP Regex Tester requires a modern browser. Please update your browser to the latest version and try again. www.regextester.com 포스팅 후반부에서는 C++과 파이썬으로.. 2022. 4. 3.