'프로그래밍 > 자바스크립트' 카테고리의 다른 글
jQuery selectBox 제어 (0) | 2016.04.14 |
---|---|
jQuery 자식 팝업 창에서 부모 창 컨트롤 (0) | 2016.03.17 |
정규 표현식 요약 (0) | 2013.10.02 |
quick menu 바 (0) | 2013.07.19 |
javascript 브라우저 종류 (0) | 2012.11.23 |
jQuery selectBox 제어 (0) | 2016.04.14 |
---|---|
jQuery 자식 팝업 창에서 부모 창 컨트롤 (0) | 2016.03.17 |
정규 표현식 요약 (0) | 2013.10.02 |
quick menu 바 (0) | 2013.07.19 |
javascript 브라우저 종류 (0) | 2012.11.23 |
Regular Expressions in Java
java.util.regex package 에 있는 Matcher 클래스와 Pattern 클래스를 사용하여 문자열을 정규표현식으로 검증할수 있다.
http://www.javamex.com/tutorials/regular_expressions/pattern_matcher.shtml#.UfdJmo1M-X8
e.g. ) boolean b = Pattern.matches(“^[a-zA-Z0-9]*$”, this.input);
A. 정규표현식 설명
^ : 문자열의 시작을 나타냄.
$ : 문자열의 종료를 나타냄.
. : 임의의 한 문자를 나타냄. (문자의 종류는 가리지 않는다)
| : or를 나타냄.
? : 앞 문자가 없거나 하나있음을 나타냄.
+ : 앞 문자가 하나 이상임을 나타냄.
* : 앞 문자가 없을 수도 무한정 많을 수도 있음을 나타냄.
[] : 문자 클래스를 지정할 때 사용한다. 문자의 집합이나 범위를 나타내며 두 문자 사이는 '-' 기호로 범위를 나타낸다. []내에서 ^ 가 선행하여 나타나면 not 를 나타낸다.
{} : 선행문자가 나타나는 횟수 또는 범위를 나타낸다.
a{3} 인 경우 a가 3번 반복된 경우를 말하며, a{3,}이면 a가 3번 이상 반복인 경우를 말한다. 또한 a{3,5}인 경우
a가 3번 이상 5번 이하 반복된 경우를 나타낸다.
( ): 소괄호 ‘( )’ 특수문자는 ‘( )’ 특수문자 안의 글자들을 하나의 문자로 봅니다. 예를 들어 ‘gu(gg){2}le’ 와 같은 패턴을 작성하게 되면 ‘guggggle' 문자열이 문자열에 포함되어 있어야 됩니다.
|: 패턴 안에서 OR연산을 사용할 때 사용합니다. 예를 들어 'hi|hello' 는 hi 나 hello 가 포함되어있는 문자열을 의미합니다.
\w : 알파벳이나 숫자
\W : 알파벳이나 숫자를 제외한 문자
\d : 숫자 [0-9]와 동일
\D : 숫자를 제외한 모든 문자
\: 위의 각 기능에서 벗어납니다(escape).
(?i): 앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않는다 (물음표+소문자i(아이))
B. 기본적인 문자열 검증 정규식
^[0-9]*$ : 숫자만
^[a-zA-Z]*$ : 영문자만
^[가-힣]*$ : 한글만
^[a-zA-Z0-9]*$ : 영어/숫자만
.+ : 한문자 이상의 전체문자를 표시한다.
C. 정규식 표현 예제
이메일 : ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$ or ^[_0-9a-zA-Z-]+@[0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+)*$
휴대폰 : ^01(?:01[6-9]) - (?:\d{3}\d{4}) - \d{4}$
일반전화 : ^\d{2,3} - \d{3,4} - \d{4}$
주민등록번호 : \d{6} \- [1-4]\d{6}
IP 주소 : ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})
파일확장자: ([^\s]+(\.(?i)(jpg|png|gif|bmp))$)
1. 자바스크립트 정규표현식은 RegExp 객체로 표현됨.
2. RegExp 객체 생성방법
1) RegExp() 생성자 사용
2) 한쌍의 슬래시(/) 안에 리터럴을 기술
--> var pattern = /s$/;
--> var pattern = new RegExp("s$");
: 's' 로 끝나는 문자열에 매칭됨
3. 정규표현식 리터럴 문자
1) \0 : 널문자
2) \t : 탭
3) \n : 줄바꿈
4) \v : 수직탭
5) \f : 폼피드
6) \r : 캐리지리턴
4. 문자클래스 ( 대괄호로 둘러싼 개별 리터럴 문자 --> 대괄호내에 정의된 모든 문자에 매치됨)
1) /[abc]/ : a,b,c 모두 매칭
2) /[^abc]/ : a,,b,c 가 아닌 모든 문자에 매치
3) /[a-z]/ : 임의의 알파벳 소문자에 매치
4) /[a-zA-Z0-9]/ : 임의의 알파벳 대소문자 및 숫자에 매치
5) 특수문자
a) \s : Unicode 공백문자
b) \S : Unicode 공백문자가 아닌 문자
c) \w : ASCII 문자([a-zA-Z0-9]) 와 동일
d) \W : ASCII 문자가 아닌 문자 ([^a-zA-Z0-9]) 와 동일
e) \d : ASCII 숫자([0-9]) 와 동일
f) \D : ASCII 숫자가 아닌 문자([^0-9]) 와 동일
g) \b : 백스페이스
==> /[\b]/ 백스페이스에 매치됨.
==> /[\s\d]/ 공백문자나 숫자 하나에 매치
5. 정규표현식 반복 문자
1) {n,m} n번이상 m번 보다 이하
2) {n,} n번이상
3) {n} 딱 n번
4) ? 0또는 한번 나타남 ({0,1}과 동일)
5) + 한번이상 ({1,}과 동일)
6) * 0번이상 ({0,} 과 동일)
==> /\d{2,4}/ : 2에서 4자리 사이의 숫자와 매치
==> /\w{3}\d?/ : 정확히 3 문자와 매치 돠고 생략 가능한 숫자가 하나 있다.
==> /\s+java\s+/ : 앞뒤에 하나 이상의 공백이 있는 java 와 매치
==> /[^"]*/ : 0개 이상의 따옴표가 아닌 문자와 매치
6. 대체표현식 (|문자) ==> 왼쪽에서 오른쪽으로 검색됨 (먼저 매치되면 뒤의 것은 매칭 안됨)
/ab|cd|ef/ : ab 문자열 또는 cd문자열 또는 ef문자열 매치
/d{3}|[a-z]{4}/ : 세자리 숫자나 네개의 소문자에 매치
/a|ab/ : "ab" 에 적용되면 첫번째 표현식에만 매칭됨.
7. 그룹화 (소괄호) :
# 정규표현식 플래그
i : 대소문자 구별하지 않음
g : 전역매칭 수행 , 첫번째 매치에서 끝내지 않고 매치되는 모든 것을 찾는다.
m : 여러줄 상태
# 정규표현식 패턴 매칭을 위한 String 메서드
(1) search() : - 정규표현식을 파라미터로 받아 가장 처음 매칭되는 부분 문자열의 위치를 리턴,
- 파라미터가 정규표현식이 아니라면 RegExp()생성자로 정규표현식으로 변환된다.
- 매칭되는 부분 문자열이 없다면 -1 리턴
- 전역기능 지원안함. g플래그가 있다면 무시
"javaScript".search(/script/i); ==> 4리턴
(2) replace() : - 찾아서 바꾸기 작업 수행
- 첫번째 파라미터 : 정규표현식 , 두번째 파라미터 :바꿀 문자열(두번째파라미터 함수가능,동적문자열가능)
- g플래그가 있으면 모두다 바꾸고, 없으면 첫번째 매치만 바꿈
- 첫번째 파라미터가 정규표현식이 아니면 주어진 문자열을 그대로 검색한다.
-
text.replace(/javascript/gi,"JavaScript"); ==> 문자열의 대문자가 어떤상태던지 JavaScript로 변환한다.
(3) match()
jQuery 자식 팝업 창에서 부모 창 컨트롤 (0) | 2016.03.17 |
---|---|
jquery radio, select, checkbox (0) | 2013.10.28 |
quick menu 바 (0) | 2013.07.19 |
javascript 브라우저 종류 (0) | 2012.11.23 |
자주 쓰이는 JQuery Ajax 예제 (0) | 2011.08.02 |
SQL*Loader 사용하기
오라클/SQL/SQL공부
1. SQL*Loader란 ?
외부 화일에 있는 데이터를 Oracle에 Upload 할 수 있는 유틸리티 입니다.
기본적으로 외부 데이타 화일, 콘트롤화일(로드하는 데이타의 정보를 저장)이 필요합니다.
2. SQL*Loader 특징
- 하나 이상의 입력 파일을 사용 가능
- 로드를 위해 여러 개의 입력 레코드가 하나의 논리적 레코드로 결합될 수 있습니다..
- 입력 필드는 고정 길이 또는 다양한 길이를 가질 수 있습니다.
- 입력 데이터는 등 어떤 유형도 가능 합니다.
- 데이터는 디스크/테이프/명명된 파이프 등 여러 유형의 매체로부터 로드 가능
- 데이터가 한 번에 여러 테이블로 로드 가능
- 텍스트 데이터는 DB 버퍼 캐쉬를 거치지 않고 테이블로 직접 로드될 수 있다.
- 테이블에 있는 기존 데이터를 대체 하거나(Replace) 추가(Append) 할 수 있는 기능이 있습니다.
3. SQL*Loader의 사용
기본문법 : SQLLDR [keyword=] value [ [keyword=] value ]...
- KEYWORD : 아래에 설명되는 키워드중의 하나이며 VALUE는 키워드에 지정되는 값
실행예)
SQLLDR userid=scott/tiger control='test.ctl' log='test.log'
키워드
•USERID : 사용자 ID와 암호
•CONTROL : 콘트롤 파일명
•LOG : 로그 파일명(기본 이름은 컨트롤파일명.log)
•BAD : 업로드에 실패한 레코드들이 저장 된다.(기본 이름은 컨트롤파일명.bad)
•DATA : 업로드를 위한 데이터 파일 이름
•DISCARD : 선택되지 않은 레코드가 저장되는 디스카드 파일(선택 사항)
•DISCARDMAX : 버림(discard)의 최대 허용 갯수(기본값은 모든 버림을 허용하는 것입니다. 잘못된 입력 파일이 지정될 경우 실행을 중단시킬 안전 수단으로 사용)
•SKIP : 건너 뛸 레코드 수, 주로 이전에 실패한 로드를 계속할 때 사용됨(한 테이블로 로드할 때나 로드되고 있는 모든 테이블에 대해 동일한 수의 레코드를 건너 뛸 때만 이 옵션을 사용)
•LOAD : SKIP에 의해 지정된 레코드를 건너 뛴 다음 로드할 레코드 수를 지정
•ERRORS : 배드 레코드의 최대 수
•ROWS : conventional 로드의 경우 각 삽입 전에 배열에 구축될 행의 수 지정(direct path로드의 경우 이 키워드는 각 data save마다 입력으로부터 읽어들일 행의 근사 수를 정의, Direct로드는 data save 전에 완전한 블록을 구축하고 버릴 행과 부적합한 행을거부한다.)
•BINDSIZE : conventional 로드의 경우 각 데이터베이스 호출시 삽입될 행의 배열을 구축하는데 사용될 최대 바이트 수를 지정(ROWS 파라미터도 지정되면 SQL*Loader는 BINDSIZE의 제한에 따라 ROWS에 의해 정의된 만큼의 행을 구축합니다.)
•DIRECT : TRUE로 설정되면 SQL*Loader는 direct path를 사용. 반대의 경우는 기본 값인 conventional path 사용.
•PARFILE : 모든 로드 파라미터를 포함하고 있는 파일의 이름을 지정(명령 라인에 정의된 파라미터는 파라미터 파일에 정의된 값들을 무효화합니다.)
•PARALLEL : direct 로드에서만 적합한 이 파라미터는 다중 병렬 direct 로드가 수행되도록 지원
•FILE : 병렬 direct 로드의 경우 임시 세그먼트가 생성될 파일을 지정
--------------------------------------------------------------------------------
Control File 예(Control File에서 데이터를 포함 할 경우)
LOAD DATA
INFILE *
REPLACE
INTO TABLE mydept <-- 오라클의 테이블 이름
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(DEPTNO, DNAME)
BEGINDATA
40,SALES
50,"RESEARCH"
60,"ART"
참고 :
- Control File에서 데이터를 포함하지 않을 경우에는 INFILE 다음에 DATA파일을 지
정하고 BEGINDATA 부터 생략 하면 된다.
- NOLOGGING 키워드를 사용하여 테이블에 NOLOG 속성을 설정하는 것과 콘트롤
파일에 UNRECOVERABLE 옵션을 사용하는 것은 서로 같다.
6. Data File
① 콘트롤 파일에서 정의된 형식의 입력을 위한 데이터가 있다.
② UpLoad될 데이터를 Control File에 정의 할 수도 있고 Data File에 따로 분리 할 수도
있다.
7. Log File
- 로드 시작/종료 시간, 총로드시간등 정보를 제공
- Load상태 정보를 저장
-로드된 행의 수, 에러로 인해 로드가 거부된 행의 수, 버려진(Discard) 행의 수등의
정보를 제공 한다.
출처 : ONJ프로그래밍 (http://www.onjprogramming.co.kr)
--------------------------------------------------------------------------------
(예제)
1. 연습용 테이블 생성
SQL> create table bbangmi_list(
2 bbang_no number not null primary key,
3 food varchar2(30) not null,
4 when varchar2(4)
5 );
테이블이 생성되었습니다.
--------------------------------------------------------------------------------
2. 제어파일 데이터가 들어있는 경우
(C:\Documents and Settings\onj에 저장했다)
myfood.ctl파일을 만들었다.
LOAD DATA
INFILE *
INTO TABLE bbangmi_list
FIELDS TERMINATED BY','
(BBANG_NO, FOOD, WHEN)
BEGINDATA
10, 떡볶이, 간식
20, 피자, 저녁
30, 치킨, 점심
40, 맥주, 아침
50, 커피, 아침
3. 실행
C:\Documents and Settings\onj>sqlldr userid=scott/tiger control = 'myfood.ctl'
SQL*Loader: Release 11.2.0.1.0 - Production on 금 8월 2 15:47:22 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
커밋 시점에 도달 - 논리 레코드 개수 5
4. 데이터 insert 실행여부 확인
(저장폴더에는 이제 myfood.log가 생성되어있다.)
SQL> connect scott/tiger
SQL> select*from bbangmi_list;
BBANG_NO FOOD WHEN
---------- ------------------------------ ----
10 떡볶이 간식
20 피자 저녁
30 치킨 점심
40 맥주 아침
50 커피 아침
--------------------------------------------------------------------------------
2. 제어파일과 데이터 파일이 분리된 경우
#. control file 부분 : food.ctl저장
#. DATA : food.dat저장
@ food.ctl 내용
LOAD DATA
INFILE 'food.dat'
APPEND
INTO TABLE bbangmi_list
FIELDS TERMINATED BY ','
(bbangmi_no,food,when)
--------------------------------------------------------------------------------
@ food.data 내용
60,금식,안돼
20,초콜렛,간식
10,콜라,저녁
(**주의!! data 파일에 빈칸이 있으면 자료가 안들어가 ㅠㅜㅠㅜㅠㅜㅠㅜ
예: 60, 금식, 안돼 nononono!!!
바른 답 : 60,금식,안돼 goooooooooood!!!
3. 실행
C:\Documents and Settings\onj>sqlldr userid=scott/tiger control = 'food.ctl'
SQL*Loader: Release 11.2.0.1.0 - Production on 금 8월 2 15:57:29 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
커밋 시점에 도달 - 논리 레코드 개수 2
커밋 시점에 도달 - 논리 레코드 개수 3
(dir확인)
2013-08-02 오후 03:57 56 food.bad
2013-08-02 오후 03:55 110 food.ctl
2013-08-02 오후 03:56 54 food.DAT
2013-08-02 오후 03:57 1,972 food.log
2013-08-02 오후 12:08 1,455,095,808 full.dmp
2013-08-01 오전 11:20 <DIR> My Documents
2013-08-02 오후 02:26 157 mydept.ctl
2013-08-02 오후 02:26 1,537 mydept.log
2013-06-22 오후 03:31 923,430,912 myemp.dmp
2013-08-02 오후 03:46 179 myfood.ctl
2013-08-02 오후 03:47 1,549 myfood.log
2013-06-15 오전 11:22 <DIR> Oracle
2013-08-02 오전 11:34 1,455,095,808 scott.dmp
2013-06-22 오전 10:32 4,096 scott.emp
2013-07-18 오후 03:01 0 select
2013-07-18 오후 03:02 0 spool
2013-08-02 오전 11:44 8,192 structure.dmp
2013-07-18 오후 05:30 0 test.sql
2013-08-02 오전 10:16 <DIR> 바탕 화면
2011-07-25 오후 03:41 <DIR> 시작 메뉴
34개 파일 5,289,240,626 바이트
7개 디렉터리 77,600,690,176 바이트 남음
food.bad 파일이 생성됨 :
----내용----
20,초콜렛,간식
10,콜라,저녁
------------
(해석) BAD파일이 생긴 이유는 이미 기존에 위의 실습을 통해 10, 20, 30번,40번,50번은 저장 되어 있는 상태.
그러므로 APPEND 되는 10, 20, 60 번중에서 10, 20번을 가진 데이터는 DISCARD 되는 것
(bbang_no 가 Primary Key)
4. 데이터 insert 여부 확인
SQL> select * from bbangmi_list;
BBANG_NO FOOD WHEN
---------- ------------------------------ ----
10 떡볶이 간식
20 피자 저녁
30 치킨 점심
40 맥주 아침
50 커피 아침
60 금식 안돼
6 개의 행이 선택되었습니다.
프로시저 혹은 함수 목록 출력시 (0) | 2014.06.25 |
---|---|
오라클 날짜 함수 (0) | 2014.01.13 |
ORA-01476 : 제수가 0 입니다. (0) | 2012.05.14 |
ORA-00054: 자원이 사용중이고, NOWAIT가 지정되어 있습니다 (0) | 2012.04.27 |
ORACLE PL/SQL 연습 날짜 출력하기 (0) | 2012.04.26 |
자바 및 톰켓 경로 export 하기
export JAVA_HOME=/usr/local/jdk1.7.0_07
export CATALINA_HOME=/was/tomcat/tomcat7
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/bin/lib/ext:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar
리눅스 링크 거는 법 (0) | 2015.04.27 |
---|---|
linux address already in use (0) | 2015.04.27 |
리눅스 심볼릭 링크 걸기 (0) | 2013.09.30 |
톰켓설치 (0) | 2013.09.30 |
Linux java 설치 (0) | 2013.09.30 |
아래와 같이 리눅스에서 링크를 걸어 보세요.
ln -s /aa/bb/cc/dd /ee/ff/gg/dd
-s 옵션은 심볼릭 링크를 건다는 것이구요.. 디렉토리를 링크할 때는 심볼릭 링크만 가능합니다.
상기와 같이 링크가 걸렸다면..
cd /ee/ff/gg/dd 로 했을때 경로가 /aa/bb/cc/dd/ 로 바뀝니다.
링크를 설치할때 구태여 cd /ee/ff/gg 로 가서 링크할 필요는 없어요.
만약, pwd 가 /ee/ff/gg/ 인 상태라면..
ln -s /aa/bb/cc/dd dd 라고 하거나
ln -s /aa/bb/cc/dd /ee/ff/gg/dd 모두 동일하게 작동합니다.
만약 /aa/bb/cc/dd/a1/b1/c1 경로를 2개 서버 이상이 NFS 로 공유하고 있다면,
/aa/bb/cc/dd 까지만 NFS 로 잡아주면 됩니다.
linux address already in use (0) | 2015.04.27 |
---|---|
자바 및 톰켓 경로 export 하기 (0) | 2013.09.30 |
톰켓설치 (0) | 2013.09.30 |
Linux java 설치 (0) | 2013.09.30 |
find와 grep을 활용한 검색 (0) | 2012.08.27 |
자바 및 톰켓 경로 export 하기 (0) | 2013.09.30 |
---|---|
리눅스 심볼릭 링크 걸기 (0) | 2013.09.30 |
Linux java 설치 (0) | 2013.09.30 |
find와 grep을 활용한 검색 (0) | 2012.08.27 |
vi 명령 정리 (0) | 2012.04.18 |
CentOS에 자바를 설치하기
http://www.oracle.com/technetwork/java/javase/downloads/index.html
여기에서 jdk를 다운받는다.
본인은 jdk6 update21 버전을 다운받았다.
1. 자바 설치
/home 에 설치한다고 치자.
별로 할게 없다.
./jdk-6u21-linux-i586.bin
주르륵 알아서 설치된다.
중간에 엔터 한번 쳐달라고 한다.
jdk1.6.0_21 폴더가 만들어진다.
편의상 java폴더로 바꿔보겠다.
mv jdk1.6.0_21 /home/java
2. 환경파일 설정
패스를 걸어줘야 한다.
vi /etc/profile
맨 밑에 추가
JAVA_HOME=/home/java
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
source /etc/profile 적용
3. 설치 확인
java -version
우린 1.6이상을 설치했는데 1.6이 아니면 CentOS 설치시 java가 같이 설치된거다.
어떻게 걸려있는지 확인해보자
which java
/usr/bin/java
이놈이다.
가서 확인해볼까
cd /usr/bin/
어떻게 되어있길래 이런가 볼까.
ls -al java
java -> /etc/alternatives/java
이런.../etc/alternatives/ 여기있는 자바가 실행되고 있었다.
변경해야지
alias java='/home/java/bin/java'
4. 확인
java -version
javac -version
[출처] linux(redhat, centos) jdk설치및 경로 변경|작성자 배고파용
리눅스 심볼릭 링크 걸기 (0) | 2013.09.30 |
---|---|
톰켓설치 (0) | 2013.09.30 |
find와 grep을 활용한 검색 (0) | 2012.08.27 |
vi 명령 정리 (0) | 2012.04.18 |
linux ftp client 사용법 (0) | 2012.04.10 |
이클립스에서 Export --> java>javadoc 을 함으로써 소스파일을 쉽게 html 형식의 javadoc 파일을 쉽게 만들수 있다.
소스 코드를 UTF-8로 작성을 한 경우 빌드된 javadoc 파일들의 한글은 깨져 보이게 된다.
물론 브라우저 상에서 인코딩타입을 UTF-8로 변경하면 깨지지 않은 한글을 볼수 있지만
매번 다른 화면을 이동할 때마다 인코딩타입을 변경해주거나 자동선택을 선택해지 하고 UTF-8로 고정시켜야만 한다.
javadoc파일을 만들때 당연히 옵션이 있을 거라 생각하고 살펴보니..
역시나 javadoc 생성 마지막 단계에서 VM options을 지정함으로써 javadoc 파일의 Charset을 UTF-8로 설정할 수 있었다.
위의 그림과 같이 VM options 텍스트필드에 다음과 같이 입력한다.
-locale ko_KR -encoding UTF-8 -charset UTF-8 -docencoding UTF-8
java get 방식 한글 전송 시 (0) | 2015.05.26 |
---|---|
전자정부(Spring) Framework] iBatis 입력(INSERT) 결과 (1) | 2015.05.19 |
java jdbc db instance 설정 (0) | 2015.05.06 |
오라클 페이징 (0) | 2014.07.23 |
sprint MVC interceptor (0) | 2013.09.12 |