정규표현식 (Regex)
정규표현식(正規表現式, Regular Expression)은 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단이다.
"정규식"과 "정규표현식"은 같은 말입니다. "정규표현식"을 줄여서 "정규식"이라고 합니다. 영어로는 "Regular Expression (레귤러 익스프레션)"이라고 하는데, 이것이 너무 길기에, Regexp 또는 더 줄여서 Regex 라고 간편히 기술합니다. 즉 정규식이라는 것은 "문자열을 다루는 공식". 수학에 숫자를 다루는 공식이 있듯이, 프로그래밍에서 "ABC" "가나다라" 등의 문자열을 처리할 때 사용하는 것입니다: 참고사이트 |
정규식 패턴(표현식)
표현식의 다양한 특수기호(패턴)는 그 기호의 의미(기능)와 매칭되어 인식되지 않기 때문에 따로 외우지 않으면 의미를 파악할 수가 없습니다.
우선 기본적인 의미를 아래의 표에 정리했습니다.
정규식 패턴설명
^ | 줄(Line)의 시작에서 일치, /^abc/ |
$ | 줄(Line)의 끝에서 일치, /xyz$/ |
. | 임의의 한 문자와 일치 |
a|b | a 또는 b와 일치, 인덱스가 작은 것을 우선 반환 |
* | 0회 이상 연속으로 반복되는 문자와 가능한 많이 일치, {0,}와 동일 |
*? | 0회 이상 연속으로 반복되는 문자와 가능한 적게 일치(lazy), {0}와 동일 |
+ | 1회 이상 연속으로 반복되는 문자에 가능한 많이 일치, {1,}와 동일 |
+? | 1회 이상 연속으로 반복되는 문자에 가능한 적게 일치(lazy), {1}와 동일 |
? | 없거나 1회 가능한 많이 일치 |
?? | 없거나 1회 가능한 적게 일치(lazy) |
{3} | 3(숫자)개 연속 일치 |
{3,} | 3개 이상 연속 일치 |
{3,5} | 3개 이상 5개 이하(3~5개) 연속 일치 |
{3,5}? | 3개 이상 5개 이하(3~5개) 연속 중 가능한 적은 3개 연속 일치(lazy), {3}와 동일 |
() | 캡처(Capture)할 그룹 |
(?<>) | 캡처 그룹 이름 지정, /(?<name>pattern)/ ES2018 |
\1~9 | 정규식 내 캡처된 값 참조, /(abc)\1/ |
(?:) | 캡처(Capture)하지 않는 그룹 |
(?=) | 앞쪽 일치(Lookahead), /ab(?=c)/ |
(?!) | 부정 앞쪽 일치(Negative Lookahead), /ab(?!c)/ |
(?<=) | 뒤쪽 일치(Lookbehind), /(?<=ab)c/ ES2018 |
(?<!) | 부정 뒤쪽 일치(Negative Lookbehind), /(?<!ab)c/ ES2018 |
[abc] | a 또는 b 또는 c와 일치, 점(.)이나 별표(*) 같은 특수 문자는 []안에서 특수 문자가 아님, /\.[.]/ |
[a-z] | a부터 z 사이의 문자 구간에 일치(영어 소문자) |
[A-Z] | A부터 Z 사이의 문자 구간에 일치(영어 대문자) |
[0-9] | 0부터 9 사이의 문자 구간에 일치(숫자) |
[가-힣] | 가부터 힣 사이의 문자 구간에 일치(한글) |
[2-7] | 2부터 7 사이의 문자 구간에 일치(2,3,4,5,6,7) |
[b-f] | b부터 f 사이의 문자 구간에 일치(b,c,d,e,f) |
[다-바] | 다부터 바 사이의 문자 구간에 일치(다,라,마,바) |
[^abc] | a 또는 b 또는 c가 아닌 나머지 문자에 일치(부정) |
\ | 이스케이프 문자, /\.\?\/\$\^/ |
\b | 63개 문자(영문 대소문자 52개 + 숫자 10개 + _(underscore))가 아닌 나머지 문자에 일치하는 경계(boundary) |
\B | 63개 문자에 일치하는 경계 |
\d | 숫자(Digit)에 일치 |
\D | 숫자가 아닌 문자에 일치 |
\p{} | 유니코드 속성(Property) 집합에 맞는 문자에 일치, /\p{Emoji}/u ES2018 |
\P{} | 유니코드 속성 집합에 맞지 않는 문자에 일치, /\p{Uppercase}/u ES2018 |
\s | 공백(Space, Tab 등)에 일치 |
\S | 공백이 아닌 문자에 일치 |
\w | 63개 문자(Word, 영문 대소문자 52개 + 숫자 10개 + _)에 일치 |
\W | 63개 문자가 아닌 나머지 문자에 일치 |
\x | 16진수 문자에 일치, /\x61/는 a에 일치 |
\0 | 8진수 문자에 일치, /\141/은 a에 일치 |
\u | 유니코드(Unicode) 문자에 일치, /\u0061/는 a에 일치 |
\c | 제어(Control) 문자에 일치 |
\f | 폼 피드(FF, U+000C) 문자에 일치 |
\n | 줄 바꿈(LF, U+000A) 문자에 일치 |
\r | 캐리지 리턴(CR, U+000D) 문자에 일치 |
\t | 탭 (U+0009) 문자에 일치 |
$` | 문자 대체(replace) 시 일치한 문자 이전 값 참조 |
$' | 문자 대체(replace) 시 일치한 문자 이후 값 참조 |
$+ | 문자 대체(replace) 시 마지막으로 캡처된 값 참조 |
$& | 문자 대체(replace) 시 일치한 문자 결과 전체 참조 |
$_ | 문자 대체(replace) 시 입력(input)된 문자 전체 참조 |
$1~9 | 문자 대체(replace) 시 캡처(Capture)된 값 참조 |
https://heropy.blog/2018/10/28/regexp/
정규표현식, 이렇게 시작하자!
매일 쓰는 것도, 가독성이 좋은 것도 아니지만, 모르면 안되는 정규표현식. 저는 이렇게 공부하기 시작했습니다! (자바스크립트를 기준으로 설명합니다)
heropy.blog
나중에 살펴보면 좋을듯
https://zzokma.tistory.com/1644
자주 사용하는 정규표현식
1. 영문자 소문자, 숫자, "-", "_" 로만 구성된 길이 2 ~ 10자리 사이 문자열 /^[a-z0-9_-]{2,10}$/ 2. 신용카드 번호 19자리 숫자와 "-": /^[0-9-]{19}$/ 4-4-4-4 체크: /^[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}$/ 3
zzokma.tistory.com
https://blogpack.tistory.com/560
복사해서 바로 사용하는 자주 사용하는 정규표현식(Regular Expression) Top 20
1. 영문자 소문자, 숫자, "-", "_" 로만 구성된 길이 2 ~ 10자리 사이 문자열 /^[a-z0-9_-]{2,10}$/ 2. 신용카드 번호 19자리 숫자와 "-": /^[0-9-]{19}$/4-4-4-4 체크: /^[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}[-\s\.]?[0-9]{4}$/ 3.
blogpack.tistory.com
https://hitomis.tistory.com/68
[javascript] 자주 사용하는 정규 표현식 (Regular Expression) 정리
정규표현식 패턴 /패턴/ 대표적인 패턴 의미 패턴 의미 x 문자 x xyz 문자 xyz [xyz] x,y,z 중 하나의 문자 [a-z] a~z중 하나의 문자 [^xyz] x,y,z 가 아닌 하나의 문자 [^a-z] a~z가 아닌 하나의 문자 abc|xyz 문자
hitomis.tistory.com
https://moondol-ai.tistory.com/251
파이썬 정규표현식(regexp) [], ^, |, 기호(+, ?, ., *)
유명한 스탠포드 대학의 Jurafsky 교수가 제공하는 Regular Expressions PPT를 사용해 첨부 자료를 작성했습니다. 큰 괄호 [] 안에 있는 문자가 패턴이 된다. 아래 예시를 살펴보자. [wW]: 소문자 w 및 대문
moondol-ai.tistory.com
https://haranglog.tistory.com/7
[JavaScript] 정규표현식(regular expression)
🌈 정규 표현식 정의 자바스크립트에서 정규 표현식은 RegExp 객체로 표현된다. 정규 표현식 리터럴은 한 쌍의 슬래시(/) 문자 사이에 위치한다. // s로 끝나는 모든 문자열과 매치된다. const pattern
haranglog.tistory.com
https://blog.outsider.ne.kr/360
알고 있어야 할 8가지 정규식 표현 from nettuts+ :: Outsider's Dev Story
nettuts+에 Vasili이 쓴 유용한 정규식 표현에 대한 글을 올려서 내용 정리합니다. 정규식만 잘 써도 Validation이나 String을 다루기가 무척 편할텐데 쓸때마다 헷갈리고 약간은 어렵게 느껴지고 쉽게
blog.outsider.ne.kr
https://ahkscript.github.io/ko/docs/misc/RegEx-QuickRef.htm
정규표현식 (RegEx) - 간편 참조서 | AutoHotkey
{min,max} 이전의 문자, 부류, 또는 부패턴이 최소 min회 그리고 최대 max회 나타나면 부합합니다. 예를 들어, a{1,2}는 ab에 부합하지만 aaab에서 오직 앞의 두 a에만 부합합니다. 또, {3}는 정확하게 3 회
ahkscript.github.io
[정규표현식] 정규표현식의 의미, 특징, 패턴 종류
정규표현식(正規表現式, Regular Expression)은 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단이다.1) 대소문
velog.io
정규표현식 (regex)
정규 표현식 정규표현식(regular expression)은 일종의 문자를 표현하는 공식으로, 특정 규칙이 있는 문자열 집합을 추출할 때 자주 사용되는 기법입니다. 주로 Prograaming Language나 Text Editor…
sooftware.io
'React > Form Validation' 카테고리의 다른 글
[React] Form 유효성 검사 : Input 글자 수 제한 (0) | 2023.04.07 |
---|---|
[React] Form 유효성 검사 : RegExp 객체 (0) | 2023.04.07 |