2015년 9월 30일 수요일

정규표현식


- \(.+\)
괄호를 포함하여 괄호에 싸여있는 모든 값 검색 됨

-------------------------------------------------------------------------

- ^+검색어
소스 상 한 줄의 가장 처음 나타나는 검색어를 검색
who is who 라면 앞의 who만 검색 됨

-------------------------------------------------------------------------

- 검색어+$
소스 상 한 줄의 가장 마지막 나타나는 검색어를 검색
who is who 라면 뒤의 who만 검색 됨
※ 특수문자 $ 를 찾을때
$12$\-\$25$
^\$를 하면 $가 문자처리되어 맨 앞의 $가 찾아짐

-------------------------------------------------------------------------

- .
모든 문자를 의미
...... 6개의 점은 6개의 글자를 가진 문자를 의미한다.

-------------------------------------------------------------------------

- [검색어]
[ ] 한 세트는 한 글자 의미
How Hone을 [ho]. 으로 검색하면 뒤에 .(점) 때문에 두글자를 찾되,
첫글자는 h또는o가 들어간 글자 중에서 찾게 된다.

-------------------------------------------------------------------------

- [검색어-검색어]
[c-k] c 부터 k 까지를 검색.
[C-Ka-d2-6] 등의 방법도..

-------------------------------------------------------------------------

-[^검색어]
[ ]내부의 ^(캐럿)은 부정의 의미
[c-k] c 부터 k 까지를 제외하고 검색.

-------------------------------------------------------------------------

- (on|ues|rida)
Monday Tuesday Friday

(Mon|Tues|Fri)day 하면 세 단어 전체가 모두 검색 됨
..(nd|esd|id)ay 해도 모두 검색됨, 앞에 점 두개는 두글자, 중간은 (), 끝은 ay

-------------------------------------------------------------------------

- 수량자(Quantifiers)  *, +, ?
a*b 는 b 앞에 a라는 문자가 있든 없는 다 검색한다.
a+b 는 b 앞에 a라는 문자가 1개 이상이면 있는 부분부터 다 검색한다.
a?b 는 b 앞에 a라는 문자가 없거나 1개이면 검색한다.

.* 는 모든 텍스트
-A*- 는 -(데시)앞에 -와A가 있든 없는 모두 검색

\*+ 는 + 앞의 것이 하나라도 있어야 검색
[^]+ 는 공백이 하나라도 있는 것을 검색


.{5} 는 어떤 것이든 5글자인 것 검색
[els]{1,3} 는 검색하려는 것이 1개 이상 3개 이하인 경우 검색
[a-z]{3,} 는 3개 문자 이상인 겨우 검색( 상한선이 없음)

AB*A 는 AB{0,}A와 같은 의미를 지닌다.
AB+A 는 AB{1,}A와 같은 의미를 지닌다.
AB?A 는 AB{0,1}A와 같은 의미를 지닌다.

r.* 는 r문자 뒤에 모든 문자를 잡는다.


수량자뒤에 바로 ? 가 올 경우 의미가 달라진다.
r.*? 의 경우
?가 *의 효력을 0~여러개 에서 0으로 바꿔버린다.
결국 r만 검색되고 .은 무용지물이 됨

r.+? 의 경우
?가 *의 효력을 1~여러개 에서 1으로 바꿔버린다.
결국 r과 뒤에 붙는 문자 하나만 검색됨

r.+? 의 경우
?가 *의 효력을 1~여러개 에서 1으로 바꿔버린다.
결국 r과 뒤에 붙는 문자 하나만 검색됨

-------------------------------------------------------------------------

- \w  word를 의미( 알파벳 과 숫자 그리고 _(언더라인) )
공백은 제외된다.
/w* 모든 문자 검색 ( = [A-z0-9] )
[a-z]\w*
\w{5} 문자 5개 검색

※ 대문자W는 문자가 아닌것 검색

-------------------------------------------------------------------------

- /d 는 0~9까지의 수 의미
※ 대문자D는 숫자가 아닌것 검색

-------------------------------------------------------------------------

- /b. 바운더리

\b\w 단어의 시작 스펠링이 강조
\w\b 단어의 끝 스펠링이 강조

\b\w+\b 1글자 이상인 단어를 강조

cat concat 에서
\bcat 이면 앞의 cat만 검색
cat\b 이면 두 단어의 cat 모두 검색

-------------------------------------------------------------------------

- \A...
문단에서 시작단어 중 3글자 단어 검색

-------------------------------------------------------------------------

- \Z...
문단에서 끝단어 중 3글자 단어 검색

-------------------------------------------------------------------------

- \w+(?=X)
X를 뺀 앞부분을 선택


-------------------------------------------------------------------------
-------------------------------------------------------------------------



2015년 9월 17일 목요일

python

Python

=========================================

파일 찾기

import glob
files = glob.glob("*.exe")
print files

=========================================

현재 디렉토리 알기

import os
print os.getcwd()

변경하기

os.chdir("C:/WINDOWS")
print os.getcwd()

경로내 모든 디렉토리 출력

print os.listdir('.')

=========================================

import os,re

루트 디렉토리를 중심으로 하위 폴더 중에서 파일 찾기

os.walk - > 리턴 tuple 형식 ( 경로, 폴더들, 파일들 )

모든 폴더 탐색
for t in os.walk('Root'):
    print t

특정 파일 찾기
def findfile(filepattern, base = '.'):
    regex = re.compile(filepattern)
    matches = []
    for root, dirs, files in os.walk(base):
        for f in files:
          if regex.match(f):
             matches.append(root + '/' + f)
    print(matches)


remove(path)
파일 경로를 제거한다.
path가 디렉토리이면, OSError가 일어난다; (디렉토리를 제거하려면 rmdir()을 사용하라).

rename(src, dst)
src 파일이나 디렉토리 dst로 이름을 바꾼다.
dst가 디렉토리이면, OSError가 일어난다.


=========================================

import shutil

copy(src, dst)
src 파일을 dst 파일이나 디렉토리에 복사한다. dst가 디렉토리이면, 지정된 디렉토리에 src와 바탕이름이 같은 파일이 생성된다(즉 오버라이트된다). 허가 비트도 복사된다. src와 dst는 문자열로 주어진 경로 이름이다.

move(src, dst)
재귀적으로 파일이나 디렉토리를 다른 곳으로 이동시킨다.
목적지가 현재 파일시스템이면, 그냥 src의 이름을 바꾸어라. 그렇지 않으면, src를 dst에 복사하고 src를 삭제하라.

=========================================

import os.path as p
import glob

for item in glob.glob('*')
   if p.isfile(item): print item, ' is a file'
   elif p.isdir(item): print item, ' is a directory'
   else: print item, ' is of unknown type'

p.isfile(item)
p.isdir(item)

=========================================

import time as t

t.localtime( )


=========================================
=========================================
=========================================

JavaScript

JS 는 함수다!


--------------------------------------------------------------

- 역슬러시 \
: 뒤에 나온 것을 문자로 처리한다.
:: \+' (= 역슬래시+') 하면  ' 을 문자로 처리한다.

--------------------------------------------------------------

- Math
:: Math.random(); -> 0.11323 같은 1 이하의 랜덤한 수 제공

--------------------------------------------------------------

- document
현재 html 문서 자체를 의미
document.getElementById("아이디") 하면 해당 아이디의 html 객체 튀어나옴
document.write("내용")의 경우 전체 문서를 해당 내용으로 다시 쓴다

DOM, BOM  개념에 대한 서술이 필요

--------------------------------------------------------------

JQuery, ajax 서술이 필요

--------------------------------------------------------------

-http request

form 태그 전송
<form enctype="multipart/form-data" action="1.php" method="POST">
  <input type="hidden" name="maxFileSize" value="30000"/>
  <input type="file" name="userFile"/>
  <input type="submit" value="upload">
</form>

enctype : encoding type, multipart/form-data 로 해야 한다. 심오한 이유는 알면 쓰겠음
action="URL", 전송할 목표 웹서버 페이지의 URL
method="POST", 파일 전송의 경우라서인지 POST 방식을 선택 ( GET no no )

type="hidden" 항목에서 "maxFileSize"은 웹서버측 php파일에서 $_POST["maxFileSize"]로
받아서 사용한다.

파일의 경우도 $_POST["userFile"] 으로 사용할 수 있지 않을까? 하는 생각은 버리자
파일의 경우 $FILES 라는 약속된 변수에 저장되어 있다.
$FILES["userFile"] 으로 배열화 되어있는 파일의 정보에 접근할 수 있다.
$FILES["userFile"]["name"] //-> 파일 이름. 확장자
$FILES["userFile"]["type"] //-> image 인지 text 인지 / 형식?(png , plain 등 )
$FILES["userFile"]["tmp_name"] //->템프 경로, 파일을 목표 경로로 옮기기 전 잠시있는 곳
$FILES["userFile"]["error"] //-> 전송중? 에러 사항?
$FILES["userFile"]["size"] //-> 파일 용량

이후에 일어나는 일은 php 항목에서 "$FILES"를 검색해서 찾아볼 수 있다

--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------

--------------------------------------------------------------

- 참고사항
<script> </script> 사이가 아니라도 자바 스크립트를 사용하 수 있다.

input tag의 onclick 부분
<input type="button" value="white" onclick="alert('hello world')"/>

input tag의 onfocus, onblur 부분
<input type="text" onfocus="alert('focus')" onblur="alert('blur')"/>

--------------------------------------------------------------