문자열에 나타나는 특정 문자 조합과 대응시키기 위해 사용되는 패턴
/ab+c/i
정규표현식이 변하지 않으면 리터럴 표기법으로 생성하여 반복문 안에서 정규표현식을 매번 다시 컴파일하지 않는다는 장점이 있다.
** 추가설명: 리터럴 방식은 스크립트가 불러와질때 컴파일 된다.
new RegExp('ab+c', 'i') // 생성자
생성자를 사용하여 정규표현식을 사용하면 런타임에 컴파일 되는데, 패턴이 변할 가능성이 있거나 사용자 입력과 같이 알 수 없는 외부 소스에서 가져오는 정규 표현식의 경우 생성 자 함수를 사용하길 권장한다고 한다.
** 추가설명: 생성자 방식은 정규식 실행 시점에 컴파일 된다. 정규식 패턴이 변경되거나 다른 출처로부터 패턴을 가져와야 하는경우 생성자 함수를 사용해라.
문자 | 뜻 |
---|---|
\ | 일반문자앞에 쓸 경우 해당문자를 특별하고, 문자 그대로 해석되면 안된다는 사실을 가리킴 예를 들어 b는 문자 소문자 영문 b를 찾는 패턴이지만 \b는 어떤 문자와도 대응되지 않으며 "단어 경계 문자" 를 형성한다. |
특수 문자 앞에 위치한 백슬래시는 다음에 나오는 문자는 특별하지 않고 문자 그대로 해석되어야 한다는 사실을 가리킨다. /a\/는 a과 대응된다. | |
\\ 역슬래시 자체를 표기하려면 이스케이프 해야한다. | |
^ | 입력의 시작 부분에 대응되며, 다중행 플래그가 참으로 설정되엉 ㅣㅆ다면 줄 바꿈 문자 바로 다음 부분과도 대응된다. '^'가 문자셋([abc]) 패턴의 첫 글자로 쓰인다면, 역 문자셋의 의미를 가진다. |
$ | /t$/ 와 같이 사용되며 입력의 끝 부분에 대응된다. 줄바꿈이 있다면 다중행 플래그가 참으로 설정되어야 각 행마다 끝 문자열에 대응할 수 있다. |
* | 앞의 표현식의 0회 이상 연속으로 반복되는 부분과 대응 된다. {0,}와 같은 의미 |
+ | 앞의 표현식의 1회 이상 연속으로 반복되는 부분과 대응 된다. {1,}와 같은 의미 |
? | 앞의 표현식이 0 또는 1회 등장하는 부분과 대응된다. {0,1} |
. | 개행 문자를 제외한 모든 단일 문자와 대응된다. |
정규표현식: 1?[\s-]?(?(\d{3}))?[\s-]?\d{3}[\s-]?\d{4}
정규표현식: ^([\w.]+)
문제에서는 태그의 이름 a 또는 div의 이름만 매칭하게 제시 되었지만
코드의 태그만 매칭하게 조금더 풀어보았다.
정규표현식:
1회차 시도: <\w+\s?>|<[\w]+\s[\w]+=['"].+[''']>|<\/\w+>
2회차 시도: <\w+[^>]*>|<\/\w+>