해당 사이트에는 정규표현식을 학습하기 위한 문제들이 준비되어 있다.
문제를 풀면서 정규표현식을 공부해보자
처음 연습이라면, 위 페이지를 펼쳐놓고 풀어보시길 권해드립니다.
Lesson 1
Task | Text |
Match | abcdefg |
Match | abcde |
Match | abc |
정답 : abc
다른 어떠한 패턴 없이 문자를 입력하게 되면 문자열에 포함된 문자가 모두 Match되어진다.
Lesson 1- 2
Task | Text |
Match | abc123xyz |
Match | define "123" |
Match | var g = 123; |
정답 : 123 혹은 \d{3}
123은 Lesson1과 같은 원리로 123을 찾아낸다.
\d는 숫자를(digital) 찾아낸다.
{N}는 앞의 조건이 연속적으로 N개 이상 맞는 경우를 찾아낸다.
Lesson 2
Task | Text |
Match | cat. |
Match | 896. |
Match | ?=+. |
Skip | abc1 |
정답 : \.
. 은 모든 문자열 단 하나를 뜻한다.
그렇기 때문에 그냥 .을 하게 되면 Text의 모든 글자의 첫글자가 Match된다.
문자열에 .을 찾기 위해선
\(이스케이프) 후에 .을 하여, 순수하게 .을 문자열에서 찾는 방법을 택해야 한다.
Lesson3
Task | Text |
Match | can |
Match | man |
Match | fan |
Skip | dan |
Skip | ran |
Skip | pan |
정답 : [cmf]
[ ]는 안에 있는 문자 하나 하나를 비교하여 Match시킨다.
더 정확한 정답은 다음과 같다.
좀 더 정확한 정답 : [cmf]를 통해 c 또는 m 또는 f를 찾고 +를 통해 그 이후에 an을 가지는 문자열을 찾는다.
Lesson 4
Task | Text |
Match | hog |
Match | dog |
Skip | bog |
정답 : [^bog]
^는 [ ]안에서는 OR의 부정으로 쓰인다. 예시에서는 b또는 o또는 g가 포함되지 않는것의 의미로 사용된다.
추가로 ^ 밖에 있다면 ^이후의 문자로 시작한다는 의미이다.
Lesson 5
Task | Text |
Match | Ana |
Match | Bob |
Match | Cpc |
Skip | aax |
Skip | bby |
Skip | ccz |
정답 [A-Z]
-는 [ ]안에서 범위를 나타낸다. 문제에선 대문자가 하나라도 포함된 것을 매치시킨다.
Lesson 6
Task | Text |
Match | wazzzzzup |
Match | wazzzup |
Skip | wazup |
정답 : z{2}
z가 둘 이상 있기만 하면 조건을 만족한다.
Lesson 7
Task | Text |
Match | aaaabcc |
Match | aabbbbc |
Match | aacc |
Skip | a |
정답 : ab*c
*앞에 있는 문자는 0개이상 있는 것을 선택한다. 예제에선 ab(n개 이상)c 혹은 ac를 매치한다.
참고로 +앞에 있는 문자는 1개 이상 있는 것을 선택한다.
Lesson 8
Task | Text |
Match | 1 file found? |
Match | 2 files found? |
Match | 24 files found? |
Skip | No files found. |
정답 : \d+\sfiles?\sfound\?
?는 앞의 문자가 없거나 하나 있을수 있다.
Lesson 9
Task | Text |
Match | 1. abc |
Match | 2. abc |
Match | 3. abc |
Skip | 4.abc |
답 : \s
\s는 문자열에 공백을 매치시킨다.
Lesson 10
Task | Text |
Match | Mission: successful |
Skip | Last Mission: unsuccessful |
Skip | Next Mission: successful upon capture of target |
답 : ^M.+l$
^은 뒤에 문자부터 시작하는 문자를 찾는다.
$은 앞의 문자로 끝나는 문자를 찾는다.
문제에선 M으로 시작하고 여러문자가 있거나 없고 l로 끝나는 문자를 찾는다.
'기타 > Regular expression' 카테고리의 다른 글
[Regex] RegexOne 사이트 문제 풀이와 학습(2) (0) | 2019.04.10 |
---|