실습에 사용한 사이트의 링크는 아래와 같다.
주어진 조건이다.
email은 local-part@domain 형식을 갖는다.
* local-part
// 1-1 영문자, 숫자, _ , -, ., (, ) 만 허용된다.
// 1-2 . 은 연속해서 올 수 없다.
// 1-3 () 안에 반드시 문자 1개 이상이 있어야한다.
// 1-4 ()는 한번만 올 수 있다.
// 1-5 최소한 1개의 문자가 있어야한다.
* domain part
// 2-1 도메인명은 영문자, _, 숫자만 올 수 있다.
// 2-2 . 은 라벨을 구분한다.
^((\w+\-?)+@(\w+\.)*\w+)|("[\w\.]+"\s*<\s*(\w+\-?)+@(\w+\.)*\w+\s*>)$
maxup@test.com
ma-xup@paran.com
ma-xup-@paran.com
kim-dae-hyung@mail.naver.co.kr
kim-dae-hyung@naver.co.kr
"kim.dae.hyung" <maxup@paran.co.kr>
"kim.dae.hyung" < maxup@paran.co.kr >
m--axup@paran.com
-maxup@paran.com
"333" <@paran.co.kr>
다음 문제이다.
0과 1로 구성된 문자열이 있다. 이 문자열은 1이 연속으로 나오지 않는다.
[올바른예]
0
1
01
10
010
101
01000000010
01000010100001
1000000000100101010101010101010
[올바르지 못한 예]
011
11
110
000000100000100001100000
011000001001
0111000001
위 조건에 따른 정규표현식은 아래와 같이 작성할 수 있다.
^(1?0)*[01](01?)*$
다음 문제!
0과 1로 이루어진 문자열이 있다.
이 문자열은 반드시 00을 포함해야하고 단 한번만 존재한다.
[올바른예]
00
1001
0101001110
11101100
001
[올바르지못한예]
010
0110
000
100001
1010111000
0010100
위 조건에서 정규표현식은 아래와 같이 작성할 수 있다.
^(0?1)*00(10?)*$
사실 문제를 보다보면 한번에 패턴이 눈에 띄지 않아 찾기 힘들 수 있다.
그렇기 때문에 반복되는 패턴은 이런식으로 찾는다는 것을 알고 있으면 편할 것 같다.
'Archive > Develop' 카테고리의 다른 글
[ 정규표현식 ] 패스워드 정책(영문자, 숫자, 특수문자, 8글자 이상) 패턴 (0) | 2021.10.28 |
---|---|
[ Android ] 이미지 처리 라이브러리 글라이드(Glide) (0) | 2021.10.11 |
[ Kotlin ] 코틀린 기초 문법 | 함수와 변수 선언 | Kotlin IN ACTION (0) | 2021.10.04 |
[ Kotlin ] 코틀린 개요 | Kotlin IN ACTION (0) | 2021.10.04 |
[ 정규표현식 ] 정규표현식 IPv4 | 정규표현식 아이피 정보 (0) | 2021.09.28 |