정규표현식: 정리
정규표현식
참고자료
stringr::str_view()
- https://regex101.com
- https://regexr.com
- https://regexper.com
대표적인 정규표현식
정규표현식 | 의미 |
---|---|
n2ow |
n2ow |
[abc] |
a , b , 또는 c |
[a-z] |
문자 a 에서 z 까지 |
[0-9] |
0 에서 9 까지 |
[^abc] |
a , b , c 를 제외한 모든 문자 |
[^a-z] |
a , b , c , …, z 를 제외한 모든 문자 |
[\\^] , [\\-] |
^ , - 를 [ ] 안에서 나타내기 |
\d |
숫자 |
\D |
숫자를 제외한 모든 문자 |
\w |
알파벳, 한글, 숫자(alphanumeric) |
\W |
알파벳, 한글, 숫자를 제외한 모든 문자(non-alphnumeric) |
\s |
공란(' ' , '\t' , '\r' , '\n' ) |
\S |
공란을 제외한 모든 문자 |
\b |
단어 경계(word boundary): \w 와 \W 의 연결 |
\B |
단어 경계가 아닌 경우 |
. |
모든 문자 |
\. |
. (마침표) |
\[ , \] |
[ , ] |
\\ |
\ |
a{m} |
a 를 m번 반복 |
[cd]{m,n} |
c 또는 d 를 m에서 n번의 반복 |
* |
0번 이상의 반복 |
+ |
1번 이상의 반복 |
? |
0번 또는 1번 |
{m,n}? , *? , +? , ?? |
더 적은 횟수를 선호 |
\{ , \} , \* , \+ , \? |
{ , } , * , + , ? |
^ , $ |
시작과 끝 |
( ) |
그룹 |
(ab(cd)) |
그룹 내의 그룹 |
(now | never) |
\^ , \$ , \( , \) |
^ , $ , ( , ) |
\1 , \2 |
첫 번째, 두 번째 그룹 |
- 문자를 그대로 쓸 수 없기 때문에
\
를 써야 하는 문자
. [ ] \ { } * + ? ^ $ ( ) |
POSIX 브라켓
POSIX 브라켓 | 의미 | 다른표현 |
---|---|---|
[:alnum:] |
알파벳과 숫자 | [a-zA-Z0-9] |
[:alpha:] |
알파벳 | [a-zA-Z] |
[:ascii:] |
아스키 문자 | [\x00-\x7F] |
[:blank:] |
Space와 Tab | [ \t] |
[:cntrl:] |
제어문자 | [\x00-\x1F\x7F] |
[:digit:] |
숫자 | [0-9] |
[:graph:] |
볼 수 있는 문자[g1] | [\x21-\x7E] |
[:lower:] |
소문자 | [a-z] |
[:print:] |
볼 수 있는 문자와 공란[g2] | [\x20-\x7E] |
[:punct:] |
문장부호와 기호 | [!“#$%&'()*+,-./:;<=>?\[\\]_{ |
[:space:] |
모든 공란 문자[g3] | [\t\r\n\v\f] |
[:upper:] |
대문자 | [A-Z] |
[:word:] |
단어 문자(문자, 숫자, 밑줄) | [A-Za-z0-9_] |
[:xdigit:] |
16진수 숫자 | [A-Fa-f0-9] |
[g1]: 공란, 제어문자 제외 모든 문자
[g2]: 제어문자 제외
[g3]: 줄바꿈 포함
정규표현식을 활용할 수 있는 함수들
dir
또는list.files
,apropos
,find
등
Approximate matching(edit-based distance)
stringdist::stringdist(a, b, method= )
method=
'osa'
'lv'
: delete, insert, substitution'dl'
: delete, insert, substitution, transposition'hamming'
'lcs'
: delete, insert'gram'
'cosine'
'jaccard'
'jw'
'soundex'
Leave a comment