re : 파이썬 정규식 라이브러리
일반 regular expression과 특별히 다른 규칙은 없다.
import re
dot (.) : any char.
^ $ : start, end of string
^ : invert... 예) [^A-Z]는 A-Z를 invert해주어서 소문자a-z를 의미하게됨.
* : zero or more repeats // 0번 이상의 반복
+ : one or more repeats .. ( )로 싸인 글자들. (1번 이상의 반복)
\d \s \w : any digit, white space, word character
즉 \d 는 [0-9], \s 는 [ \t\n\r\f\v](공백포함!!!), \w 는 [a-zA-Z0-9_] (밑줄포함!!!!)
반대로 not digit 등은
\D \S \W : == [^0-9], [^ \t\n\r\f\v], [^a-zA-Z0-9_]
? : 문자가 0개 or 1개
. : 문자가 1개
{n} : 숫자만큼
예) '[0-9]+' : 1개이상의 숫자
예) re.match('[0-9]{3}-[0-9]{4}-[0-9]{4}', '010-1000-1000') : 숫자3, "-", 숫자4, "-", 숫자4
예) '\w' : 알파벳넘버 한글자 [a-zA-Z0-9]
예) '[\w]+' : 알파벳넘버로 된 단어 ( []로 문자 클래스를 만들고 +로 1번 이상의 반복)
예) 문장을 단어들로 분리하는 예
>>> lists = re.findall('[\w]+', words) <--- 문자들(\w)의 클래스([])의 1개이상의 반복(+)
또는
>>> lists = re.split('[\W]', words) <-- 비문자(\W)의 클래스([])
함수들) re.search(), re.finall(), re.split(), re.match 등
re.match(패턴, 문자열) <-- 문자열의 처음부터 패턴의 존재여부를 검색함
re.search(패턴, 문자열) <-- 문자열의 일부분이 매칭되는지 판단함.
re.sub(패턴, 바꿀문자열, 문자열, 바꿀횟수) <-- 패턴에 따라 문자열을 바꿈.
예) '{ "name": "james" }'을 '<name>james</name>' 형식으로 바꾸기
>>> re.sub('({\s*)"(\w+)":\s*"(\w+)"(\s*})', '<\\2>\\3</\\2>', '{ "name": "james" }')
'<name>james</name>'
유용한 링크들
1. https://wikidocs.net/4308
2. https://dojang.io/mod/page/view.php?id=1144
3. 이메일
https://dojang.io/mod/page/view.php?id=1145
중국이 ML에 두각을 내는 이유가 한자와 입력기 때문이다? (autocomplete) (0) | 2023.05.19 |
---|---|
[ML] 생각하지 않는 사람들 - 2 (0) | 2023.05.08 |
GAN의 위험성(?) (0) | 2023.04.12 |
파이썬 리스트의 LIFO, FIFO 사용법 (0) | 2022.03.11 |
Python - list, tuple, dictionary, set, numpy (0) | 2022.01.14 |