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
해당 사이트에는 정규표현식을 학습하기 위한 문제들이 준비되어 있다.
문제를 풀면서 정규표현식을 공부해보자
처음 연습이라면, 위 페이지를 펼쳐놓고 풀어보시길 권해드립니다.
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 |
---|