일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- mutate( )
- Beyond Linear Neural Networks
- group_by( )
- 생활코딩
- LinearNeuralNetwork
- Convolution
- summarise( )
- dplyr
- 베이즈통계학
- Filter
- aitech
- 부스트캠프aitech3기
- Multi-Layer Perceptron
- Sequential Model
- 부스트캠프 aitech3기
- 모각공
- RNN
- 네이버커넥트재단
- col_names
- 부스트캠프
- JavaScript
- 자바스크립트
- regex
- 정규표현식
- r
- NomadCoder
- convolution 역전파
- 역전파알고리즘
- regular expression
- 네이버커넥트
- Today
- Total
clear_uncertainty
정규표현식(Regular Expression)에 대하여 - 문자그룹, 특정문자와 범위, 서브패턴 (5~10) 본문
정규표현식(Regular Expression)에 대하여 - 문자그룹, 특정문자와 범위, 서브패턴 (5~10)
SOidentitiy 2021. 10. 7. 17:10
본 포스팅은 생활코딩님의 정규표현식 토픽을 공부하고 정리한 내용입니다.
본 포스팅의 패턴(Page) 및 설명은 http://zvon.org/comp/r/tut-Regexp.html#Pages~Contents 를 참고했습니다.
정규표현식 패턴들
Page 5
기호 .은 모든 특성(문자, 공백, 기호 등)을 검출합니다.
Source : Regular expressions are powerful!!!
Case1
Regular Expression | . |
First match | Regular expressions are powerful!!! |
All match | Regular expressions are powerful!!! |
따라서 .은 처음에 맨 앞 텍스트 R을 검출하고 그 후, 모든 문자를 검출합니다.
Case2
Regular Expression | ...... |
First match | Regular expressions are powerful!!! |
All match | Regular expressions are powerful!!! |
...... 처럼 .이 6개가 있다면 First match 에서 앞 6 글자 Regula를 검출합니다. 그리고 6개씩 검출을 하다보면
(Regula/r expr/ession/s are /powerf///ul!!!) ul!!!은 5글자이므로 검출이 안됩니다. 따라서 'ul!!!'을 제외한
'Regular expressions are powerf' 만 검출됩니다.
Page 6
기호 .이 아닌 문자.을 검출하고 싶을 때도 마찬가지로 \를 통해 escaping 을 해주면 됩니다.
Source : O.K.
Case1
Regular Expression | . |
First match | O.K. |
All match | O.K. |
Case2
Regular Expression | \. |
First match | O.K. |
All match | O.K. |
Case3
Regular Expression | \..\. |
First match | O.K. |
All match | O.K. |
\..\.은 문자.과 문자. 사이에 .이 있는 형태로써 .과 . 사이의 모든 특성(any character)을 검출합니다.
따라서 . 과 . 사이에 있는 K를 검출합니다.
Page 7
기호 "[]" 안에 있는 요소 중 하나가 포함된다면 그 텍스트는 검출됩니다.
Source : How do you do?
Case1
Regular Expression | [oyu] |
First match | How do you do? |
All match | How do you do? |
대괄호 [] 안에 oyu 가 있기때문에 처음엔 o를, 결국엔 o , y, u를 모두 검출합니다.
Case2
Regular Expression | [dH]. |
First match | How do you do? |
All match | How do you do? |
[dH]. 는 [dH] 하나와 . 하나를 합해 두개의 문자를 의미합니다.
따라서 How do you do? 에서 d나 H를 검출하고 .이 있기때문에 d나 H의 뒤 까지 두 문자를 검출합니다.
Case3
Regular Expression | [owy][yow] |
First match | How do you do? |
All match | How do you do? |
[owy][yow]는 o, w, y 중 하나와 y, o, w 하나를 포함하는 텍스트를 검출하는 것입니다.
따라서 ow, yo 를 검출합니다. do는 o가 yow를 포함하지만 d가 owy를 포함하지 못하기 때문에 검출되지않습니다.
Page 8
기호 "-" 을 통해 대괄호 안에서 range를 표현할 수 있습니다.
Source : ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz 0123456789
Case1
Regular Expression | [C-K] |
First match | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
All match | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
[C-K]는 [CDEFGHIJK]와 정확히 일치합니다.
Regular Expression | [C-Ka-d2-6] |
First match | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
All match | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
[C-Ka-d2-6]은 [C-K], [a-d], [2-6]을 연속으로 실행한 것과 일치합니다.
Page 9
9페이지에서는 ^의 다른 기능에 대해서 알아봅시다.
^을 대괄호 안에서 쓰게되면 부정의 의미로 사용됩니다.
Source : ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz 0123456789
Case1
Regular Expression | [^CDghi45] |
First match | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
All match | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
따라서 [^CDghi45]는 CDghi45 을 제외한 텍스트를 검출합니다.
Case2
Regular Expression | [^W-Z] |
First match | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
All match | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 |
[^W-Z]는 마찬가지로 [W-Z]을 제외한 텍스트를 검출합니다.
Page 10
( ) 와 | 를 통해 텍스트를 검출할 수 있습니다.
Source : Monday Tuesday Friday
Case1
Regular Expression | (on|use|rida) |
First match | Monday Tuesday Friday |
All match | Monday Tuesday Friday |
(on|use|rida)는 on 과 use 와 rida를 검출합니다.
Case2
Regular Expression | (Mon|Tues|Fri)day |
First match | Monday Tuesday Friday |
All match | Monday Tuesday Friday |
(Mon|Tues|Fri)day 는 Mon, Tues, Fri를 검출함과 동시에 day를 같이 검출합니다.
따라서 (Mon|Tues|Fri)day 는 (Monday|Tuesday|Friday)와 일치합니다.
Case3
Regular Expression | ..(id|esd|nd)ay |
First match | Monday Tuesday Friday |
All match | Monday Tuesday Friday |
..(id|esd|nd)ay 또한 앞서 배운 것처럼 id, esd, nd 와 함께 ay를 검출함과 동시에 ..를 통해 앞의 두 글자도 같이 검출합니다.
출처
'언어 > 정규표현식(Regular Expression)' 카테고리의 다른 글
정규표현식(Regular Expression)에 대하여 - 경계와 전방/후방 탐색 (18~25) (0) | 2021.10.07 |
---|---|
정규표현식(Regular Expression)에 대하여 - 수량자(Quantifier) (11~17) (0) | 2021.10.07 |
정규표현식(Regular Expression)에 대하여 - 앵커와 이스케이핑(3~4) (0) | 2021.10.07 |
정규표현식 (Regular Expression)에 대하여 - 정의와 기본 패턴(1~2) (0) | 2021.10.07 |