정규표현식을 이용해서 가장 많이 접하는 예가 아이디와 패스워드가 제약 조건을 검사하는 것입니다. 여기서는 여러 가지 제약조건을 검사하는 정규표현식의 예를 살펴보겠습니다. 우리는 입력에 대해 검사해야 할 조건이 여러개라면 굳이 하나의 정규표현식 안에 모든 조건을 다 넣어야 하는 것은 아닙니다. 입력 문장을 몇 가지 정규표현식에 대해 차례로 검사하는 것으로 충분합니다. 그를 위해서는 앞에서 살펴본 RegexTestHarnessEjlee 프로그램의 (2)번 메뉴를 이용하면 됩니다. 입력을 먼저 넣고 여러 가지 정규표현식으로 그 입력을 검사해 볼 수 있습니다. 먼저 길이를 검사하는 조건을 생각해 봅시다. 아이디가 6글자 이상이어야 한다 라는 조건을 나타낼 수 있겠지요? 보통 아이디는 영문자와 숫자를 섞어서 쓸 ..
정규표현식에서 패턴을 입력문장에 매치한다는 것은 입력문장에서 패턴 전체의 규칙에 만족되는 부분을 찾는 것입니다. 매치되는지 여부를 참 거짓으로 돌려주기도 하고 앞의 글에서 살펴본 도구에서처럼 매치되는 부분 문자열을 모두 찾는 것도 가능합니다. 여기까지는 패턴에 매치되는 부분 전체를 다루게 됩니다. 그런데 캡처그룹은 거기서 한걸음 더 나아가서 매치된 부분에 속하는 일부를 다시 분리하여 돌려주는 방법입니다. 예를 들어 이메일에 매치된 문자열 부분을 찾았다면 거기서 @ 앞에 있는 아이디 부분만 따로 떼내고 싶을 수 있을 것입니다. 또는 끝에 도메인이 .kr인 것에서 앞부분만 구분해 내고 싶을 수도 있지요. 또는 패턴에 매치된 부분에서 일부를 바꿔치기 할 수도 있습니다. 예를 들다면 kyonggi.ac.kr로 ..
이번에는 패턴을 입력의 어느 부분에 대해 매치할 것인가를 지정하는 방법을 알아봅시다. 정규표현식에서는 위치의 개념이 시작, 끝, 단어 경계 등 여러 가지가 있습니다. 물론 각각이 아닌 경우도 조건으로 표현할 수 있겠지요. 경계를 지정하는 기호들은 다음과 같습니다. 경계 요소 설명 ^ 한 줄의 시작부 $ 한 줄의 끝 \b 단어 경계 \B 단어 경계가 아닌 곳 \A 입력의 시작부 \G 직전 매치의 끝 \Z 마지막 종료문자가 아닌 입력의 끝 \z 입력의 끝 이렇게 다양한 경계 매처를 어떻게 이용할 수 있을까요? 한 가지씩 살펴보겠습니다. (1) 입력 시작부에서만 매치하기 패턴 앞에다 ^을 넣으면 입력의 시작 부분에서 한번만 매치하라는 뜻이 됩니다. 입력 중간에 매치되는 부분이 있어도 무시하게 됩니다. (2) ..
- Total
- Today
- Yesterday
- Iterator
- CompareTo
- comparable
- 자바regex
- max
- python exercise
- sort key
- 스트링
- TypeError
- follow
- 패턴
- 스트링 +
- contentEquals
- rust
- ToString
- indexof
- C++ 클래스
- 지연계산
- Camel Style
- 동적바인딩
- 이터러블
- python example
- zip
- Lazy evaluation
- 콜렉션
- format
- 이터레이터
- contains
- typedef
- APPEND
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |