
문자열을 검색하고 조작하는 데 사용되는 좋은 도구입니다. 정규 표현식은 특정한 패턴을 정의하여 문자열을 매칭하거나 대체하는 작업을 수행할 수 있습니다. 자주 사용되는 정규 표현식 패턴은 다음과 같습니다.
.: 임의의 한 문자+: 앞의 패턴이 1번 이상 반복?: 앞의 패턴이 0번 또는 1번 반복\\d: 숫자 문자\\w: 단어 문자 (알파벳, 숫자, 밑줄)\\s: 공백 문자 (스페이스, 탭, 줄 바꿈)[abc]: a, b, c 중 하나의 문자[^abc]: a, b, c가 아닌 문자|: OR 연산자(...): 그룹화^: 문자열의 시작$: 문자열의 끝등등..
정규 표현식을 사용하여 XML 태그 및 속성을 파싱할 수 있습니다.
태그의 속성을 추출하는 정규 표현식은 다음과 같습니다.
const attrRegex = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)\\s*=\\s*"([^"]*)"/g;
이 정규 표현식은 속성 이름과 값을 추출하는데 사용됩니다.
/ /
([a-zA-Z_:][-a-zA-Z0-9_:.]*)
([a-zA-Z_:]): 대괄호 안의 문자는 속성 이름의 첫 번째 문자를 나타내며, 영어 대문자와 소문자, 밑줄(_), 그리고 콜론(:)을 포함합니다.([-a-zA-Z0-9_:.]*): 대괄호 안의 문자는 속성 이름의 나머지 문자를 나타내며, 영어 대문자와 소문자, 숫자, 밑줄(_), 하이픈(-), 콜론(:), 그리고 점(.)을 포함합니다. *는 이 문자가 0번 이상 반복됨을 의미합니다.([a-zA-Z_:][-a-zA-Z0-9_:.]*)는 HTML 속성 이름에 해당하는 부분을 캡처합니다.\s*=\s*
\s*: 0개 이상의 공백 문자를 나타냅니다.=: 등호 문자를 나타냅니다.\s*: 0개 이상의 공백 문자를 나타냅니다.\s*=\s*는 속성 이름과 속성 값 사이의 등호를 포함한 공백을 허용합니다."([^"]*)"
": 큰따옴표를 나타냅니다.([^"]*): 큰따옴표로 끝나지 않는 0개 이상의 문자를 나타내며, 속성 값을 캡처합니다. 대괄호 안의 ^는 not을 의미하여 큰따옴표를 제외한 모든 문자를 포함합니다.": 큰따옴표를 나타냅니다."([^"]*)"는 큰따옴표로 둘러싸인 속성 값을 캡처합니다.g
matchconst rootMatch = this.pathString.match(/^([a-zA-Z]:\\\\|\\/)/);
^: 문자열의 시작을 의미.([a-zA-Z]:\\\\|\\/): 대소문자 알파벳 문자로 시작하는 드라이브 문자(예: C:)와 그 뒤에 오는 백슬래시(\\) 또는 슬래시(/)를 의미.const extMatch = lastComponent.match(/(\\.[^\\.]+)$/);
(\\.[^\\.]+): 점(.)으로 시작하고 점(.)이 아닌 문자로 이루어진 문자열을 의미. .이 있으면 확장자로 가져옴.$: 문자열의 끝을 의미. 이는 확장자가 파일명 끝에 위치해야 한다는 것을 나타냄.가장 많이 사용되는 정규 표현식 패턴 순으로 정리한 치트 시트를 보여드리겠습니다. 각 패턴과 그 용도를 포함하여 정리하였습니다.
.: 임의의 한 문자 (줄바꿈 문자는 제외)
a.b는 "aab", "acb" 등과 일치^: 문자열의 시작
^abc는 "abcdef"와 일치$: 문자열의 끝
abc$는 "defabc"와 일치*: 앞의 패턴이 0번 이상 반복
ab*c는 "ac", "abc", "abbc" 등과 일치+: 앞의 패턴이 1번 이상 반복
ab+c는 "abc", "abbc" 등과 일치하지만 "ac"는 일치하지 않음?: 앞의 패턴이 0번 또는 1번 반복
ab?c는 "ac"와 "abc"에 일치|: OR 연산자
a|b는 "a" 또는 "b"와 일치(...): 그룹화
(abc)+는 "abc", "abcabc" 등과 일치[abc]: a, b, c 중 하나의 문자
[abc]는 "a", "b", "c" 중 하나에 일치[^abc]: a, b, c가 아닌 문자
[^abc]는 "d", "e" 등과 일치하지만 "a", "b", "c"는 제외[a-z]: a에서 z까지의 소문자 중 하나
[a-z]는 "a", "b", ..., "z"와 일치[A-Z]: A에서 Z까지의 대문자 중 하나
[A-Z]는 "A", "B", ..., "Z"와 일치[0-9]: 0에서 9까지의 숫자 중 하나
[0-9]는 "0", "1", ..., "9"와 일치\d: 숫자 문자 [0-9]
\d는 "0", "1", ..., "9"와 일치\D: 숫자가 아닌 문자
\D는 숫자가 아닌 모든 문자와 일치\w: 단어 문자 (알파벳, 숫자, 밑줄)
\w는 "a", "b", ..., "z", "A", "B", ..., "Z", "0", "1", ..., "9", "_"와 일치\W: 단어 문자가 아닌 문자
\W는 단어 문자가 아닌 모든 문자와 일치\s: 공백 문자 (스페이스, 탭, 줄 바꿈)
\s는 공백 문자와 일치\S: 공백 문자가 아닌 문자
\S는 공백 문자가 아닌 모든 문자와 일치\b: 단어 경계
\bword\b는 "word"와 일치하지만 "sword"나 "wording"과는 일치하지 않음\B: 단어 경계가 아님
\Bword\B는 "swording" 등과 일치하지만 "word"와는 일치하지 않음{n}: 정확히 n번 반복
a{3}는 "aaa"와 일치{n,}: n번 이상 반복
a{2,}는 "aa", "aaa", "aaaa" 등과 일치{n,m}: n번 이상 m번 이하 반복
a{2,3}는 "aa", "aaa"와 일치하지만 "a", "aaaa"는 일치하지 않음이메일 주소 검증:
/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
전화번호 형식:
/^\d{3}-\d{3,4}-\d{4}$/
URL 검증:
/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/
우편번호 (한국):
/^\d{3}-\d{3}$/
날짜 형식 (YYYY-MM-DD):
/^\d{4}-\d{2}-\d{2}$/