프로그래밍 언어/Spring

정규 표현식 정리

brianshin96 2023. 11. 29. 18:05

 

더보기

해당 글은 필자가 공부한 내용을 이해를 위해 정리한 것입니다. 전문성이나 정확성 다소 부족할 수 있습니다.

정규표현식이란?

규칙을 가진 문자열의 집합을 표현하는데 사용되는 언어입니다.

 

정규표현식이 나타나게된 이유?

사람은 텍스트를 의미를 가진 문자열로 인식할 수 있습니다. 예를 들면, 사람이 010-1234-5678나 123456-1234567 같은 문자열을 보면 바로 전화번호나 주민등록번호임을 유추할 수 있습니다. 하지만, 컴퓨터의 입장에서는 두 문자열 모두 의미없는 문자열일 뿐 입니다. 현대에서는 막대한 양의 데이터들을 고도화해야 하기때문에 이런 정보들을 일일히 사람들이 처리하기는 매우 어려운 일입니다. 그래서 나타난게 정규표현식입니다. 정규표현식을 사용하면 컴퓨터에게는 의미없는 문자열을 유용한 데이터로 구분할 수 있게 합니다.

 

정규표현식을 사용해야하는 이유?

컴퓨터에게 텍스트의 규칙에 따라 유용한 정보를 손쉽게 뽑아오게 만들기 위해서는 정규표현식을 꼭 사용해야합니다. 유용성이나 편의성 면에서 사람들이 직접 작업하는 것보다 기계가 작업하는 것이 훨씬 빠르고 정확하기 때문입니다.

 

정규표현식의 문법

정규표현식의 문법은 크게 3가지로 구분됩니다.

 

1. 문자: 문자와 숫자를 구분하듯 문자 종류를 구분합니다.

2. 어설션: 행이나 단어의 시작과 끝을 구분합니다.

3. 수량자: 일치시킬 문자 또는 표현식의 수를 의미합니다.

 

1. 문자 클래스

정규식 패턴 설명 패턴 종류 예제
\\w 문자만 허용 (a-z, A-Z, 0-9, …) ^[\\w]*$
\\W 문자가 아닌 경우에만 허용 ! (a-z, A-Z, 0-9, …) ^[\\W]*$
\\d 숫자만 허용 (0-9) ^[\\d]*$
\\D 숫자가 아닌 경우에만 허용 ! (0-9) ^[\\D]*$
\\s 공백 문자, 탭만을 허용 (space, tabe, newline) ^[\\s]*$
\\S 공백 문자, 탭이 아닌 경우만 허용 ! (space, tabe, newline) ^[\\S]*$

 

2. 어설션(assertion)

정규식 패턴 설명 예제
^ 문장의 시작(특정 문자열로 시작) ^www
$ 문장의 끝(특정 문자열로 끝) ^com$

 

3. 수량자

정규식 패턴 설명
? 있거나 없거나 (zero or one)
* 있거나 없거나 많거나 (zero or more)
+ 하나 또는 많이 (one or more)
{n} n만큼 있거나
{min,} 적어도 min만큼 있거나
{min, max} 적어도 min보다 많고 max보다 적거나

 

정규표현식의 클래스와 메서드

JAVA에서 정규표현식을 작성하기 위해서는 java.util.regex 패키지를 불러오면됩니다. 주로 Patteren 클래스와 Matcher 클래스가 사용됩니다. 

 

1. Pattern 클래스: matches()메서드를 지원합니다. 어떤 문자열이 설정한 정규식에 매칭되는지 확인할 수 있습니다. 

2. Mather 클래스: 문자열의 패턴을 해석하고 주어진 패턴과 일치하는지 체크할 때 사용됩니다.

 

 

아래 사이트에서 정규표현식을 연습해봅시다.

https://regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

https://regexone.com/

 

RegexOne - Learn Regular Expressions - Lesson 1: An Introduction, and the ABCs

Regular expressions are extremely useful in extracting information from text such as code, log files, spreadsheets, or even documents. And while there is a lot of theory behind formal languages, the following lessons and examples will explore the more prac

regexone.com

 

 

참고한 블로그

https://adjh54.tistory.com/104

 

[Java] 정규표현식(RegExp) 이해하기 : 패턴, 문자 클래스, 자주 사용 패턴

해당 글의 목적은 주요 정규식 조작함수를 이해하고 예제를 통한 이해를 돕기 위해 작성한 글입니다. 해당 글에서는 모든 함수에 대해서는 포함하고 있지 않으며 자주 사용되는 함수 위주로 작

adjh54.tistory.com

https://hbase.tistory.com/160

 

[Java] 정규표현식 사용법 및 예제 - Pattern, Matcher

자바에서 정규표현식(Regular Expression)'을 사용해보자. 1. 정규표현식(Regular Expression) 정규표현식 혹은 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용되는 언어다. 정규 표현식은

hbase.tistory.com

https://kevinitcoding.tistory.com/entry/%EC%A0%95%EA%B7%9C-%ED%91%9C%ED%98%84%EC%8B%9D%EC%9D%B4%EB%9E%80#:~:text=%EA%B7%9C%EC%B9%99%EC%9D%B4%20%EC%97%86%EB%8B%A4%EB%A9%B4%2C%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EA%B0%80,%EC%97%90%EA%B2%8C%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EB%82%B4%EB%A6%BD%EB%8B%88%EB%8B%A4.&text=%EC%9D%B4%EC%B2%98%EB%9F%BC%20%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%9D%98%20%EA%B7%9C%EC%B9%99%EC%9D%84,%ED%91%9C%ED%98%84%EC%8B%9D%EC%9D%98%20%EC%A1%B4%EC%9E%AC%20%EC%9D%B4%EC%9C%A0%EC%9E%85%EB%8B%88%EB%8B%A4.

 

정규 표현식이란? 개념과 공부 방법에 대해 알려 드립니다.

정규 표현식의 정의 문자열의 규칙을 찾아서 정규 표현식(Regular Expression)이란 특정한 규칙을 가진 문자열의 집합을 다루는 데 사용하는 형식 언어입니다. 다양한 프로그래밍 언어에서 문자열의

kevinitcoding.tistory.com