문법 정리
Groups and ranges
Chracter뜻
| | | 또는 |
| () | 그룹 |
| [] | 문자셋, 괄호안의 어떤 문자든 |
| [^] | 부정 문자셋, 괄호안의 어떤 문가 아닐때 |
| (?:) | 찾지만 기억하지는 않음 |
Quantifiers
Chracter뜻
| ? | 없거나 있거나 (zero or one) |
| * | 없거나 있거나 많거나 (zero or more) |
| + | 하나 또는 많이 (one or more) |
| {n} | n번 반복 |
| {min,} | 최소 |
| {min,max} | 최소, 그리고 최대 |
Boundary-type
Chracter뜻
| \b | 단어 경계 |
| \B | 단어 경계가 아님 |
| ^ | 문장의 시작 |
| $ | 문장의 끝 |
Character classes
Chracter뜻
| \ | 특수 문자가 아닌 문자 |
| . | 어떤 글자 (줄바꿈 문자 제외) |
| \d | digit 숫자 |
| \D | digit 숫자 아님 |
| \w | word 문자 |
| \W | word 문자 아님 |
| \s | space 공백 |
| \S | space 공백 아님 |
플래그(flags)
정규 표현식을 생성할 때 플래그를 사용하여 기본 검색 설정을 변경할 수 있습니다.
이렇게 설정된 플래그는 나중에 추가되거나 삭제될 수 없습니다.
플래그(flag)설명
| i | 검색 패턴을 비교할 때 대소문자를 구분하지 않도록 설정함. |
| g | 검색 패턴을 비교할 때 일치하는 모든 부분을 선택하도록 설정함. |
| m | 검색 패턴을 비교할 때 여러 줄의 입력 문자열을 그 상태 그대로 여러 줄로 비교하도록 설정함. ^(첫번째 문자)와 $(마지막 문자)가 (\n, \r로 구분되는) 행단위로 일치 |
| y | 대상 문자열의 현재 위치부터 비교를 시작하도록 설정함. |
설명(Description)
정규표현식은 다음과 같은 경우 사용한다.
- 문자열에서 특정 문자열이 존재하는지 확인
- 문자열의 특정 부분을 다른 문자열로 변경
CharacterMeaning
| \ | 이스케이핑(escaping) |
| ^ | 범위, 시작 지점, |
| $ | 범위, 끝나는 지점 |
| * | 수량, 없거나 더 많다 == {0,} |
| + | 수량, 1보다 많다. == {1,} |
| ? | 수량, 없거나 하나이다. |
| . | 일치, 문자 하나와 일치 |
| (x) | 일치, x와 일치하는 것을 찾은 후에 이에 접근할수 있도록 함 |
| x|y | 일치. x나 y와 일치 |
| t{n} | 수량. t와 n번 일치하는 문자열과 일치 |
| t{n,} | 수량, t와 n번 이상 일치하는 문자열과 일치 |
| t{n,m} | 수량. t와 n번 이상 m번 이하로 일치하는 문자열과 일치 |
| [xyz] | 일치. xyz중에 하나라도 일치하는 문자열과 일치 |
정규식 패턴(표현식)
표현식의 다양한 특수기호(패턴)는 그 기호의 의미(기능)와 매칭되어 인식되지 않기 때문에 따로 외우지 않으면 의미를 파악할 수가 없습니다.
우선 기본적인 의미를 아래의 표에 정리했습니다.
정규식 패턴설명
| ^ | 줄(Line)의 시작에서 일치, /^abc/ |
| $ | 줄(Line)의 끝에서 일치, /xyz$/ |
| . | 임의의 한 문자와 일치 |
| a|b | a 또는 b와 일치, 인덱스가 작은 것을 우선 반환 |
| * | 0회 이상 연속으로 반복되는 문자와 가능한 많이 일치, {0,}와 동일 |
| *? | 0회 이상 연속으로 반복되는 문자와 가능한 적게 일치(lazy), {0}와 동일 |
| + | 1회 이상 연속으로 반복되는 문자에 가능한 많이 일치, {1,}와 동일 |
| +? | 1회 이상 연속으로 반복되는 문자에 가능한 적게 일치(lazy), {1}와 동일 |
| ? | 없거나 1회 가능한 많이 일치 |
| ?? | 없거나 1회 가능한 적게 일치(lazy) |
| {3} | 3(숫자)개 연속 일치 |
| {3,} | 3개 이상 연속 일치 |
| {3,5} | 3개 이상 5개 이하(3~5개) 연속 일치 |
| {3,5}? | 3개 이상 5개 이하(3~5개) 연속 중 가능한 적은 3개 연속 일치(lazy), {3}와 동일 |
| () | 캡처(Capture)할 그룹 |
| (?<>) | 캡처 그룹 이름 지정, /(?<name>pattern)/ ES2018 |
| \1~9 | 정규식 내 캡처된 값 참조, /(abc)\1/ |
| (?:) | 캡처(Capture)하지 않는 그룹 |
| (?=) | 앞쪽 일치(Lookahead), /ab(?=c)/ |
| (?!) | 부정 앞쪽 일치(Negative Lookahead), /ab(?!c)/ |
| (?<=) | 뒤쪽 일치(Lookbehind), /(?<=ab)c/ ES2018 |
| (?<!) | 부정 뒤쪽 일치(Negative Lookbehind), /(?<!ab)c/ ES2018 |
| [abc] | a 또는 b 또는 c와 일치, 점(.)이나 별표(*) 같은 특수 문자는 []안에서 특수 문자가 아님, /\.[.]/ |
| [a-z] | a부터 z 사이의 문자 구간에 일치(영어 소문자) |
| [A-Z] | A부터 Z 사이의 문자 구간에 일치(영어 대문자) |
| [0-9] | 0부터 9 사이의 문자 구간에 일치(숫자) |
| [가-힣] | 가부터 힣 사이의 문자 구간에 일치(한글) |
| [2-7] | 2부터 7 사이의 문자 구간에 일치(2,3,4,5,6,7) |
| [b-f] | b부터 f 사이의 문자 구간에 일치(b,c,d,e,f) |
| [다-바] | 다부터 바 사이의 문자 구간에 일치(다,라,마,바) |
| [^abc] | a 또는 b 또는 c가 아닌 나머지 문자에 일치(부정) |
| \ | 이스케이프 문자, /\.\?\/\$\^/ |
| \b | 63개 문자(영문 대소문자 52개 + 숫자 10개 + _(underscore))가 아닌 나머지 문자에 일치하는 경계(boundary) |
| \B | 63개 문자에 일치하는 경계 |
| \d | 숫자(Digit)에 일치 |
| \D | 숫자가 아닌 문자에 일치 |
| \p{} | 유니코드 속성(Property) 집합에 맞는 문자에 일치, /\p{Emoji}/u ES2018 |
| \P{} | 유니코드 속성 집합에 맞지 않는 문자에 일치, /\p{Uppercase}/u ES2018 |
| \s | 공백(Space, Tab 등)에 일치 |
| \S | 공백이 아닌 문자에 일치 |
| \w | 63개 문자(Word, 영문 대소문자 52개 + 숫자 10개 + _)에 일치 |
| \W | 63개 문자가 아닌 나머지 문자에 일치 |
| \x | 16진수 문자에 일치, /\x61/는 a에 일치 |
| \0 | 8진수 문자에 일치, /\141/은 a에 일치 |
| \u | 유니코드(Unicode) 문자에 일치, /\u0061/는 a에 일치 |
| \c | 제어(Control) 문자에 일치 |
| \f | 폼 피드(FF, U+000C) 문자에 일치 |
| \n | 줄 바꿈(LF, U+000A) 문자에 일치 |
| \r | 캐리지 리턴(CR, U+000D) 문자에 일치 |
| \t | 탭 (U+0009) 문자에 일치 |
| $` | 문자 대체(replace) 시 일치한 문자 이전 값 참조 |
| $' | 문자 대체(replace) 시 일치한 문자 이후 값 참조 |
| $+ | 문자 대체(replace) 시 마지막으로 캡처된 값 참조 |
| $& | 문자 대체(replace) 시 일치한 문자 결과 전체 참조 |
| $_ | 문자 대체(replace) 시 입력(input)된 문자 전체 참조 |
| $1~9 | 문자 대체(replace) 시 캡처(Capture)된 값 참조 |
자바스크립트 메소드
정규표현식을 다루는 다양한 메소드(Methods)들을 살펴봅시다.
메소드문법설명
| exec | 정규식.exec(문자열) | 일치하는 하나의 정보(Array) 반환 |
| test | 정규식.test(문자열) | 일치 여부(Boolean) 반환 |
| match | 문자열.match(정규식) | 일치하는 문자열의 배열(Array) 반환 |
| search | 문자열.search(정규식) | 일치하는 문자열의 인덱스(Number) 반환 |
| replace | 문자열.replace(정규식,대체문자) | 일치하는 문자열을 대체하고 대체된 문자열(String) 반환 |
| split | 문자열.split(정규식) | 일치하는 문자열을 분할하여 배열(Array)로 반환 |
| toString | 생성자_정규식.toString() | 생성자 함수 방식의 정규식을 리터럴 방식의 문자열(String)로 반환 |
strikerhan.tistory.com/24?category=150509
www.youtube.com/watch?v=t3M6toIflyQ&t=582s
checkbox radio select 유용한 스크립트 7
/* * checkbox object checked 속성 체크 */ function all_check(obj, true_or_false) { if (obj) { if (obj.length) { for (var i=0; i ..
strikerhan.tistory.com
'개발 > 개발에 유용한 팁' 카테고리의 다른 글
| 클린코드 (0) | 2021.07.21 |
|---|---|
| Mybatis 쿼리 바인딩 로그 출력 (0) | 2020.08.24 |
| MessageBundle DB로 전환 (0) | 2020.08.23 |
| Mysql vo 만들기 (0) | 2020.08.15 |
| 톰캣 재시작 없이 Java 수정 (0) | 2020.08.15 |