*정규식*
ex) 전화번호 입력 시, 맞는 패턴인지 확인해야 할 필요가 있음
- 어제 배운건 ex) 박씨 성 가진 사람은 찾을 수 있지만, 그리고 박_ 이렇게 두 자리 찾도록 가능하지만
'정해진' 누군가를 불러일으키는건 하지 못함. 정규식은 그게 가능하다.
- ex) 010 - 1120 - 1029
017 - 998 - 9876 (옛날 번호)
01_ (이 안에 1,6,7,8,9만 와야 한다고 할 때) -> 01[1,6,7,8,9] (대괄호 사용!)
가운데는 [0123456789]98 .... 가능하지만 너무 복잡! -> [0-9]98 혹은 \d (앞에 역슬래시임)
\d\d\d ... 반복되는거 불편 -> \d{4} 이건 숫자 4개를 의미하는 것
- 전화번호를 고쳐보자 01[0,1,6,7,8,9] - \d{3} - \d{4}
문제발생. 요즘 전화번호는 가운데가 4자리. -> 가운데는 \d{3,4) (3 또는 4 라는 것)
앞에 a 뒤에 bb가 붙어도 match라고 나오다닛...!
Q. 이거 no match라고 나오게 하기 위해서는 어떻게 해야하나
-> 앞에 ^, 뒤에$를 붙이면 된다.
정규식 - 크롤링할 때도 많이 쓴다. (담아와야 하는 개념으로서)
ex) 이메일 담아올 때, 이메일 형식으로만 된 걸 담아오는 것
- abc@naver.com 이면
오라클이면 %@%.%
- 이러면 이메일은 문자로만 시작하는데 이건 숫자로도 시작해도 참값이 나옴ㅠ
-> 정규식은 확! 막을 수 있음. (문자열음 촘촘하게 방어 가능)
[a-z] 라고도 할 수 있지만 -> \w (역슬래시와 w)
cf) \W (대문자 W를 써주면) 반대의 의미
-> 첫 글자는 숫자가 오면 안되므로 [a-zA-Z]\w
[a-zA-Z]\w 다음에 이 셋 중에 뭐가 와야 할까.
-> *
[a-zA-Z]\w*@[a-zA-Z]\w*.[comnet]
-... 이러면 c or o or m or... 이런거라서
->
[a-zA-Z]\w*@[a-zA-Z]\w*.(com|net|org)
앞 뒤에 다른거 들어가게 하고 싶지 않으면, 앞 뒤로 ^, $ 붙여주고!
정규식은 이 정도.
더 깊은 내용은 나중에.
오라클을 가보자.
정규식 REGEXP
정규식의 추가적인 기능
대체하기
찾아내기?
잘라내기
이건 스스로 더 공부하라고 하심!
ajax 예제로 가자
- 서블릿 활용해서 자바스크립트 활용하는...
다수결로 인해서 오라클을 더 해보자
//
*ROWNUM 그리고 행 제한하기*
게시글이 1억개인데, 조회한다고 1억개가 다 나와버리면...
-> PAGING (페이지를 여러개로 나눠서 보는 것)
이걸 하기 위해 사용하는 방식이 ROWNUM
두 번째 페이지 BETWEEN 6 AND 10 하면 안 나옴
ROWNUM >= 1 이면 차곡 차곡 쌓이는데
저렇게 > 5 해버리면 다 ROWNUM이 1이어서 다 실격 실격됨 ㅠ
// 그 대안은 내일 배우도록 하겠다.
Oracle 기본 함수 정리 (0) | 2021.04.30 |
---|---|
51일차. DB 8 - ORDER BY, GROUP BY, HAVING, 서브쿼리 (페이징) (1) | 2021.04.30 |
49일차. DB 6 - || , IS NULL, IS NOT NULL, BETWEEN, % (0) | 2021.04.28 |
48일차. DB 5 - +, -, x, / (0) | 2021.04.27 |
44일차. DB 4 - INSERT, SELECT, UPDATE, DELETE (0) | 2021.04.21 |