^ : 문자열의 시작을 표현한다. [ ... ] 내부에서 쓰이는 경우라면 뒤의 패턴에 일치하지 않는 것을 선택한다.
^http : 문자열이 http로 시작하는 경우에만 매치하며, 중간에 나타난 http에는 매치하지 않는다.
ab[^0-9]: “ab” 뒤에 숫자가 아닌 것이 오는 것에만 매치한다. (“abc” – O, “ab1” – X)
$ : 문자열의 끝을 표현한다.
them$ : 문자열이 “them”으로 끝난 경우에만 해당 “them”에 매치한다.
\b : 단어의 경계. 문자열 시작과 끝, 공백, 개행, 탭, 콤마, 구두점, 대시문자 등이 올 수 있다.
\bplay\b : 는 단어 경계로 구분되는 “play”에는 매치한다. 하지만 “playground”의 “play”에는 매치하지 않는다.
\B : \b가 아닌것. 정규식 메타문자에서는 흔히 대문자로 표현한 것은 소문자로 표현한 문자의 반대를 의미한다.
\bplay\B : “play”뒤에 단어의 경계가 아닌 것이 올 때에만 매치한다. “playground”, “playball”의 “play”에 매치한다. 뒤에 오는 “g”, “b” 등의 문자는 포함하지 않는다.
\s : 공백 문자 및 탭 문자에 매치한다.
\S : 공백 문자가 아닌 한 글자에 매치한다.
\d : 숫자에 매치한다. [0-9]와 같다.
\D : 숫자가 아닌 문자에 매치한다. [^0-9]와 같다.
\w : 단어를 만들 수 있는 글자. 알파벳 대소문자, 숫자, 언더스코어를 포함한다. [A-Za-z0-9_] 와 같다.
\W : \w에 포함되지 않는 문자들
\n : 개행문자. \r은 캐리지 리턴이다.
\ : 이스케이프용 문자. 정규식 상의 특별한 의미가 있는 문자들을 문자 그대로 쓸 때 앞에 붙인다. \^ 라고 쓰면 “^” 문자 그대로를 가리킨다.
. : 아무 문자 1개에 대응된다. 공백 역시 문자 1개로 취급된다.
: @와 .com 들어간 이메일 주소를 확인할 때 사용합니다.
regex = "[0-9a-zA-Z][_0-9a-zA-Z-]*@[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+){1,2}$"
regex = "^\S+.(?i)(txt|pdf|hwp|xls)$"
: 작성한 패턴에 일치하는 영역이 존재하여도 그 값이 제외되어서 나오는 패턴입니다. 전방 탐색 기호는 ?= 이며, = 다음에 오는 문자가 일치하는 영역에서 제외된다. 또한, 전방 탐색은 하위 표현식과 같이 소괄호로 감싸주어야만 한다.
EX)
.+(?=:) ➡ http://www.abc.com
: 전방 탐색이 앞에 있는 문자열을 탐색하는 것이라면, 후방 탐색은 뒤에 있는 문자열을 탐색합니다. 후방 탐색의 기호는 ?<= 입니다. 전방 탐색 기호의 ?와 = 사이에 < 기호가 추가된 것입니다. 후방 탐색도, 전방 탐색의 사용법과 같다. (마찬가지로, 소괄호로 감싸주어야만 한다.)
EX)
(?<=$)[0-9.]+ ➡ $600.4
: 긍정형 전방탐색이 = 뒤에 있는 문자와 일치하는 텍스트를 탐색하는 것이라면, 부정형 전방탐색은 일치하지 않는 텍스트를 탐색하는 것이다.
: 유닛 테스트는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다. 즉, 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차를 말한다.
단위 테스트는 매우 간단하고 명확하며 빠르게 실행된다는 특징이 있습니다. 쉽게 말하면, 하나의 함수에 대해 하나 이상의 테스트가 존재할 수 있고, 각각의 조건에 대한 유효성을 검증합니다. 이렇게 작성된 단위 테스트가 많을수록 해당 로직에 대한 신뢰도가 높아질 수 있습니다. 또한, 작게 쪼개진 단위 테스트는 해당 로직이 어떤 역할을 하는지 쉽게 파악할 수 있다는 장점이 있습니다.