반응형
출처 - WRITING SECURE CODE (안전한 코드 작성 기술)
- ^
- 문자열의 시작에서 일치하는지 검사한다.
- $
- 문자열의 종료에서 일치하는 검사한다.
- *
- {0,}과 동일하며, 앞 패턴과 0번 혹은 그 이상 일치하는지 검사한다.
- +
- {1,}과 동일하며, 앞 패턴과 1번 혹은 그 이상 일치하는지 검사한다.
- ?
- {0, 1}과 동일하며, 앞 패턴과 0번 혹은 1번 일치하는지 검사한다.
- {n}
- 앞 패턴이 정확히 n번인지를 검사한다.
- {n,}
- 앞 패턴이 n번 혹은 그 이상인지를 검사한다.
- {,m}
- 앞 패턴이 m번 이하인지를 검사한다.
- {n,m}
- 앞 패턴이 n번에서 m번인지를 검사한다.
- .
- \n 문자를 제외한 한 문자가 일치하는지 검사한다.
- (pattern)
- 패턴(pattern)과 일치하는지 검사하여 그 결과 데이터를 변수에 저장한다. 결과를 저장하는 변수는 프로그래밍 언어에 따라 다르다. 패턴 그룹, 예를 들면, (xx)+는 괄호내의 패턴이 1번 이상 있는지를 검사한다. 만약 비-저장을 원하면 (?:xx)로 적어 주면 일반식 엔진은 데이터를 저장하지 않는다.
- aa|bb
- aa 혹은 b와 일치하는지 검사한다.
- [abc]
- 사각 괄호내에 표시된 문자 중 한 문자(a, b, c)라도 일치하는지 검사한다.
- [^abc]
- 사각 괄호내에 표시된 문자 중 모든 문자(a, b, c)가 없는지 검사한다.
- [a-z]
- a부터 z까지 범주에 있ㄴ느 문자가 포함되어 있는지 검색한다.
- \
- 이스케이프 문자. \n과 \/은 특수 문자이고, \1과 같이 \d로 표시되면 앞에서 찾은 데이터를 참조하는 데 사용된다.
- \b
- 단어와 스페이스간의 위치가 일치하는지 검사한다. 예를 들면 "er\b"는 "never"에서는 "er"이 일치한다고 찾지만, "verb"에서는 일치하지 않는다고 리턴한다.
- \B
- 해당 위치에서 단어를 끊어낸다. 예를 들면, "ea*r\B"는 "never early"에서 "ear"를 찾는다.
- \d
- [0-9]와 같으며 숫자가 있는지 검사한다.
- \D
- [^0-9]와 같으며 숫자가 없는지 검사한다.
- \n, \r, \f, \t, \v
- 새로운 라인, 라인 피드, 폼 피드, 탭과 수직 탭과 같은 포맷팅 문자가 있는지 검사한다.
- \p{category}
- 유니코드 카테고리를 검사한다.
- 유니코드 일반식을 \p{카테고리}라고 하면 모든 의미있는 유니코드 문자 카테고리에 있는 모든 문자를 찾는다. .NET 프레임워크와 펄 5.8.0은 유니코드 카테고리를 지원하여 전세계 모든 문자를 더 쉽게 처리할 수 있다. 유니코드 카테고리는 문자(L), 마크(M), 숫자(N), 구두점(P), 심볼(S), 구분자(Z)와 그 밖의 문자(O와 C)를 포함한다.
- L (모든 문자)
- Lu (대문자)
- Ll (소문자)
- Lm (수식어, 문자와 유사한 심볼)
- Lo (히브리어, 아라비아어, 티벳어와 같은 대/소문자의 구분이 없는 문자들)
- M (모든 마크)
- Mn (엑센트 기호나 움라우트와 같은 문자위에 표현되는 마크)
- Me (원과 같이 다른 문자를 둘러싸는 마크)
- N (모든 숫자)
- Nd (10진수, 0부터 9까지의 숫자)
- Nl (숫자, 로마 숫자는 U+2160부터 U+2182이다)
- No (분수, 위에 적은 문자(superscript), 아래에 적은 문자(subscript)와 같은 문자)
- P (구두점)
- Pc (밑줄과 같이 다른 글자들을 연결하는 연결 문자)
- Pd (대쉬, 모든 대쉬와 하이픈 문자)
- Ps ( {, (과 [ 같은 괄호를 여는 문자)
- Pe ( }, )과 [ 같은 괄호를 닫는 문자)
- Pi ('. <<과 " 같은 인용문의 시작 문자)
- Pf ('. >>과 " 같은 인용문의 끝 문자)
- Po (?, !과 같은 그 밖의 문자)
- S (모든 심볼)
- Sm (수학 부호)
- Sc (화폐 기호)
- Sk (그레이브 심볼이나 둥근 악센트 기호와 같은 심볼)
- So (섭씨 온도 기호와 상자 그리기 심볼과 같은 그 외의 심볼)
- Z (구분자)
- Zs (스페이스와 같은 구분자)
- Zl (U+2028(라인 구분자), U+00A6(수직 바, |)를 기호(Symbol)로 처리)
- Zp (U+2029(단락 구분자))
- O (그 밖의 문자)
- Cc (캐리지 리턴, 라인 피드, 벨과 같은 컨트롤 문자)
- Cf (포맷 문자)
- Co (상호, 로고와 같은 문자)
- Cn (할당되지 않은 문자)
- Cs (상위 대리 문자와 하위 대리 문자)
- 이 밖에 더 많은 카테고리는 구글 검색을 하자.
- \s
- [ \f\n\r\t\v]와 동일하며 스페이스 문자가 있는지 검사한다.
- \S
- [^ \f\n\r\t\v]와 동일하며 스페이스 문자가 없는지 검사한다.
- \w
- [a-zA-Z0-9_]와 동일하며 밑줄까지 포함한 문자와 숫자를 검사한다.
- \W
- [^a-zA-Z0-9_]와 동일하며 밑줄까지 포함한 문자와 숫자가 없는지 검사한다.
- \xnn 혹은 \x{nn}
- 두 자리 16진수 nn과 동일 값인지를 검사한다. 예를 들어, \x41은 "A"를 찾고, "\x041"은 "\x04"와 "1"을 찾는다.
- \unnnn 혹인 \x{nnnn}
- 네 자리 유니코드 16진수 nnnn과 동일 값인지를 검사한다.
사용 예제
- [a-fA-F0-9]+
- 하나 혹은 그 이상의 16진수인 경우
- <(.*)>.*<\/\1>
- HTML 태그인 경우. 시작 태크는 (.*)로 저장되고, \1은 종료 태크를 검사하는데 사용된다. 만약 (.*)이 폼이면, \1도 폼이다.
- \d{5}(-\d{4})?
- U.S. 우편 번호(ZIP Code)
- ^\w{1,32}(?:\.\w{0,4})?$
- 1부터 32 길이의 문자. 다음은 선택적인 점(period)과 0부터 4 길이의 학장자인 파일명인지를 검사한다. 괄호내의 점과 확장자는 ?:이 사용되므로 저장되지는 않는다.
반응형
'개발' 카테고리의 다른 글
HTTPS 통신에 필요한 Root 인증서와 Server 인증서 만들기 (0) | 2024.12.11 |
---|---|
Windows Version Info (윈도우 버전 정보, OSVERSIONINFOEX) (0) | 2024.12.09 |
라이브러리 파일(.lib) 함수 목록 확인하는 방법 (0) | 2024.12.09 |
레지스트리 경로 모음 (0) | 2024.12.08 |
암복호화 결과 값 웹상에서 확인할 수 있는 사이트 (0) | 2024.12.07 |