정규표현식 맛보기
정규표현식 맛보기
정규표현식은 시작, 종료 기호(/)와 정규표현식 그리고 플래그로 이루어져있다.
기본형식은 /정규표현식/플래그로 이루어 져있으며 플래그와 정규표현식의 조합으로 문자열 조합이 결정된다고 볼수 있다.
정규 표현식에 쓰는 기호나 규칙을 일일히 설명하기에는 너무 많은 시간과 분량이 필요하기 때문에 자주 쓰일만한 문자열 매치를 이용해 아주 아주 가볍게 다루어 보도록 하겠습니다.
숫자만 뽑기
정규표현식 : /\d+/g

\d는 숫자를 뽑겟다는 의미이며 +는 바로 앞에서 의미하는 것 제외 다른 문자가 나올때까지 포함한다는 의미이다.
문자 뽑기
정규표현식 : /game/g

문자그대로를 입력하면 그 문자를 추출할 수 있다.
정규표현식 : /[A-Z]/g

[A-Z]는 A ~ Z를 뽑는 매치입니다. 비슷한 것을 몇개 보면 [a-z] [0-9]와 같은 것들이 있습니다. 그리고 [A-Za-z]와 같은 식으로 두 가지 조건을 합치면 or로 판단되어 소문자와 대문자 모두를 추출할 수 있습니다. 단 한글자씩 추출된다는것을 잊으면 안됩니다. []조건에 맞는 문자 덩어리를 추출하려면 위에서 배운대로 +를 조합하면 됩니다.
이메일 형식
사실 이메일 형식에 대해서는 조건에 따라 많이 달라진다고 생각합니다. 그래서 아이디와 주소부분 모두 특수 문자를 포함하지 않는 조건으로 만들어 보겠습니다.
정규표현식 : /^[A-Za-z][A-Za-z0-9]+@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*/g

정규 표현식에서 맨앞에 나오는 ^는 시작문자를 설정 할 수 있습니다. 저는 알파벳만 올 수 있게끔 하였고 .aba와 같은 부분은 여러번 나올 수 있게끔 설정하였습니다.
주소 형식
정규 표현식 : /https?:\/\/[^:\s\/]+\.\w+(:\d+)?/g

모든 주소는 http 또는 https를 포함합니다. 이 두 조건을 모두 만족시키는 표현이 바로 https?입니다. ?는 s라는 문자가 있어도 없어도 된다는 의미입니다.
그리고 ://는 무조건 포함되므로 넣어주고 이메일에 포함되면 안되는 \s : 공백과 \/ : 슬래쉬 그리고 :을 제외한 모든 문자를 포함하게끔 하는 [^\/:\s] 표현식을 추가합니다. []안에서 처음나오는 ^는 []안의 조건을 제외한 조건이라고 생각하면 됩니다.
그리고 모든 주소는 .com과 같은 형식으로 끝나야함으로 \.\w+의 형식을 추가합니다.
그리고 제일 첫번째 예와 같이 포트번호도 함께 포함해야 할 수 있으므로 (:\d+)?를 추가 해줍니다. ()를 감싸는 것은 안의 표현식을 하나의 그룹으로 만드는 것이며 ?는 포트번호가 있어도 되고 없어도 되기때문에 추가하였습니다.
오늘은 간단하게 자주 쓰이는 정규 표현식을 통해 정규 표현식에 대해 알아보았습니다. 정규표현식에 대해 모두 이해할 순 없지만 정규 표현식에 조금 더 가까워지는 시간이 되었던 것 같습니다.
참고사이트
https://regexr.com/
https://www.slideshare.net/ibare/ss-39274621