====== Regular Expression, 정규표현식 ======
* description :
* author : 도봉산핵주먹
* email : hylee@repia.com
* lastupdate : 2020-06-08
===== Regular Expression?, 정규표현식 이란? =====
> 정규표현식(Regular expressions)은 줄여서 Regex라고 합니다. Regex는 문자열에 어떤 패턴의 문자들이 있는지 찾는데 도움을 줍니다
==== Meta characters ====
^ Regular Expression ^ Description ^
| . | 어떤 문자 1개를 의미 |
| %%^%%regex | %%^%% 다음 regex로 line을 시작하는지 |
| regex$ | $ 앞의 regex가 line의 마지막으로 끝나는지 |
| [abc] | a, b, c 중의 문자 1개 |
| [abc] | [vz] a, b, c 중에 문자 1개와 v, z 중에 문자 1개의 조합 |
| [%%^%%abc] | a, b, c를 제외한 문자 1개 |
| [a-d1-7] | a~d, 1~7 사이의 문자 1개 |
| X%%|%%Z | X 또는 Z |
| \d | 0~9 사이의 숫자, [0-9]와 동일 |
| \D | 숫자가 아닌 어떤 문자, [%%^%%0-9]와 동일 |
| \s | whitespace 1개, [\t\n\x0b\r\f]와 동일 |
| \S | whitespace를 제외한 문자 |
| \w | Alphanumeric(alphabet, 숫자) 문자, [a-zA-Z_0-9]와 동일 |
| \W | Alphanumeric을 제외한 문자(whitespace 등) |
| \S+ | whitespace를 제외한 여러 문자 |
| \b | 단어의 경계(공백)를 찾습니다 |
> [[https://codechacha.com/ko/java-regex/|Metacharacters 예제]]
===== Case Study =====
숙제? 다음이 의미하는 것은?
// 도서관 정보나루 (https://data4library.kr) 회원 가입에서 발췌
var password="ehtjrhks12$";
console.log(!/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{9,20}$/.test(password))
===== Tip =====
===== Troubleshooting =====
===== Ref =====
* [[https://regexr.com/|regexr 연습 페이지 ]]
{{tag>도봉산핵주먹 regular_expression}}