Notice
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 빅오표기법
- 클래스추가
- 향상된 for문
- flask
- AttributeError
- MSA
- nat inside
- 비절차형 언어
- 의존역적원칙
- 클래스삭제
- CORS
- 객체지향 5대 특징
- 타입오류
- 멀티프로세스
- 객체지향
- Arrays.sort()
- 토글기능
- 프로그래머스
- oop 4대 특성
- 분산형 아키택처
- soild
- 마이크로서비스아키택처
- 3-Way Handshake
- jquery
- 회원가입기능
- 로그인기능 #
- 배열오름차순정렬
- 함수지향
- 의존성주입
- 4-Way Handshake
Archives
- Today
- Total
개발하는 체대생
정규식(Regular Expressions)을 사용하여 회원가입 만들기 본문
정규식이란?
정규식(Regular Expression)은 문자열에서 특정 패턴을 찾거나, 대체하거나, 추출하는 데 사용되는 문자열 검색 패턴입니다. 즉, 특정 문자열에 대한 규칙을 나타내는 문자열입니다.
Java에서 정규식 규칙
Java에서는 정규식 규칙이 다음과 같이 작성됩니다.
- 메타 문자: 정규식에서 특별한 의미를 가지는 문자입니다. 예를 들어, .(마침표)는 모든 문자를 나타내고, ^는 문자열의 시작 부분을 나타냅니다.
- 문자 집합: 문자 집합을 사용하면, 해당 문자 집합 내의 모든 문자 중 하나와 일치하는 문자를 찾을 수 있습니다. 예를 들어, [abc]는 a, b, c 중 하나와 일치하는 문자를 찾습니다.
- 반복: 특정 문자나 문자 집합이 반복되는 횟수를 지정할 수 있습니다. 예를 들어, a{3}은 aaa와 일치하며, a{2,4}는 aa, aaa, aaaa와 일치합니다.
- 그룹화: 괄호를 사용하여 그룹을 만들고, 해당 그룹에 대해 반복 및 다른 작업을 수행할 수 있습니다. 예를 들어, (abc)+는 abc, abcabc, abcabcabc와 일치합니다.
각 문자열의 의미
- . (마침표) : 임의의 한 문자를 나타냅니다. 예를 들어, 정규식 a.c는 "abc", "afc", "a2c"와 같은 문자열과 일치합니다.
- * (별표) : 바로 앞에 있는 문자가 0회 이상 반복됨을 나타냅니다. 예를 들어, 정규식 ab*c는 "ac", "abc", "abbc"와 같은 문자열과 일치합니다.
- + (플러스) : 바로 앞에 있는 문자가 1회 이상 반복됨을 나타냅니다. 예를 들어, 정규식 ab+c는 "abc", "abbc", "abbbc"와 같은 문자열과 일치합니다.
- ? (물음표) : 바로 앞에 있는 문자가 0회 또는 1회 등장함을 나타냅니다. 예를 들어, 정규식 ab?c는 "ac", "abc"와 같은 문자열과 일치합니다.
- [] (대괄호) : 대괄호 안에 있는 문자 중 하나와 일치함을 나타냅니다. 예를 들어, 정규식 [abc]는 "a", "b", "c" 중 하나와 일치합니다.
- {} (중괄호) : 중괄호 안에 있는 숫자 범위만큼 바로 앞에 있는 문자가 반복됨을 나타냅니다. 예를 들어, 정규식 a{2,3}는 "aa", "aaa"와 같은 문자열과 일치합니다.
- ^ (시작) : 해당 문자열의 시작 부분을 나타냅니다. 예를 들어, 정규식 ^abc는 "abc"로 시작하는 문자열과 일치합니다.
- $ (끝) : 해당 문자열의 끝 부분을 나타냅니다. 예를 들어, 정규식 abc$는 "abc"로 끝나는 문자열과 일치합니다.
- () (괄호) : 괄호 안에 있는 문자열을 그룹으로 묶어 처리할 수 있습니다. 예를 들어, 정규식 (ab)+는 "ab", "abab", "ababab"와 같은 문자열과 일치합니다.
정규식(Regular Expression) | Description |
^ | 문자열의 시작 |
$ | 문자열의 끝 |
. | 임의의 한 문자 |
* | 문자가 0번 이상 발생 ( = {0,}) |
+ | 문자가 1번 이상 발생 ( = {1,}) |
? | 문자가 0번 혹은 1번 발생 ( = {0, 1}) |
[ ] | 문자의 집합 범위를 나타냄 [0-9] : 숫자 (0부터 9) [a-z] : 알파벳 (a부터 z) 앞에 ^가 나타나면 not을 의미 |
{ } | 횟수 또는 범위를 의미 {n} : 앞 문자가 n개 {n,} 앞문자가 n개 이상 {n, m}: 앞 문자가 n개 이상, m개 이하 |
( ) | 소괄호 안의 문자를 하나의 문자로 인식 |
| | or 조건 |
\ | 확장 문자의 시작 |
\b | 단어의 경계 |
\B | 단어가 아닌 것의 경계 |
\A | 입력의 시작부분 |
\G | 이전 매치의 끝 |
\Z | 입력의 끝이지만 종결자가 있는 경우 |
\z | 입력의 끝 |
\s | 공백문자 |
\S | 공백문자가 아닌 나머지 문자 |
\w | 알파벳이나 숫자 |
\W | 알파벳이나 숫자를 제외한 문자 |
\d | [0-9]와 동일 |
\D | 숫자를 제외한 모든 문자 |
정규식 예시
/^(?=.*[a-zA-Z])[-a-zA-Z0-9_.]{2,10}$/
// /^(시작) $/(끝)
// (?=.*[a-zA-Z]) => 영문 소문자와, 영문 대문자가 꼭 있어야한다.
// [-a-zA-Z0-9_.] => 영문소문자와, 대문자, 숫자, _,. 등을 사용가능하다.
// {2,10} => 2글자 ~ 10글자
참고블로그 : https://runa-nam.tistory.com/103
[Regex] 정규식이란?
1. Regex, 왜 필요하지? 프리코스 3주차에서도 Regex와 관련된 포스팅을 한 적이 있는데, (그때는 배웠던 내용중의 일부로 넣었었다.) 이번에도 피드백을 받는 과정에서 정규식과 관련된 이야기들이
runa-nam.tistory.com
정규식 쉽게 사용하기(유튜브) : https://youtu.be/2P0oSNguGXI
Comments