정규표현식 문법

^ : 문자열의 시작을 나타냄.

$ : 문자열의 종료를 나타냄.

. : 임의의 한 문자를 나타냄. (문자의 종류는 가리지 않는다)

| : 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(아이))
 

기본적인 문자열 검증 정규식

^[0-9]*$ : 숫자만

^[a-zA-Z]*$ : 영문자만

^[가-힣]*$ : 한글만

^[a-zA-Z0-9]*$ : 영어/숫자만

.+ : 한문자 이상의 전체문자를 표시한다.

정규식 표현 예제

이메일 : ^[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))$)

참고 사이트

자바, javascript, oracle 정규식: http://litlhope.springnote.com/pages/1786498

자바 정규식 간단 설명: http://twinstarbox.tistory.com/entry/Java-%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

URL 정규식으로 분리하기: http://goodidea.tistory.com/86 

'PHP' 카테고리의 다른 글

2. 배열 관련 함수  (0) 2007.11.08
1. 날짜 및 시간 함수  (0) 2007.11.08

1.array()

배열을 생성한다.


2.list(변수1, 변수2 ...)

배열의 원소를 한번에 가져와 지정한 여러 변수에 저장한다.


$munu=array("pizza","cola","pasta");  //$menu[0]=pizza, $menu[1]=cola, $menu[2]=pasta

list($first, $second, $third)=$menu  

$first=pizza, $second=cola, $third=pasta


3.each(배열)

배열로부터 배열 원소의 키와 값을 배열의 형태로 반환한다.

배열의 포인터가 이동해 가며 원소 하나씩 키와 값을 반환하는 것이므로

한번 호출시마다 하나의 키와 값 쌍을 얻을 수 있다.

따라서 다음 원소의 값을 얻으려면 each() 함수를 다시 호출해야 한다.

배열의 끝에 이르면 false를 반환한다.


$munu=array("A"=>"pizza","B"=>"cola","C"=>"pasta");

$item=each($menu);

$item[0]=A          //참조키가 0인 원소에는 배열의 키나 인덱스(키값이 없는 일반배열인 경우)가 저장

$item[1]=pizza    //참조키가 1인 원소에는 배열의 값이 저장된다.

$item[key]=A      //키값이 없는 일반 배열일 경우 배열의 인덱스 번호인 0이 저장된다.

$item[value]=pizza


4.key(배열)

연관 배열에서 현재 배열 포인터가 가리키는 원소의 키를 반환한다.


$menu=array("a"=>"pizza", "b"=>"cola","c"=>"apple");

echo key($menu)."<br>";         //a
echo current($menu)."<br>";    //pizza
echo next($menu)."<br>";        //cola
echo prev($menu)."<br>";        //pizza
echo end($menu)."<br>";        //apple
echo reset($menu);                //pizza


5.current(배열)

연관 배열에서 현재 커서가 가리키는 원소의 원소값을 가리킨다.


6.next(배열)

배열 내에서 배열 포인터를 그 다음 위치로 이동시킨 후 이동된 위치에 있는 원소의 값을 반환한다.


7.reset(배열)

배열 포인터의 위치를 처음으로 되돌린 후 첫 번째 원소의 값을 반환한다.


8.prev(배열)

배열 포인터를 이전 위치로 이동 시킨후 그 값을 반환한다.


9.end(배열)

배열 포인터를 가장 끝으로 이동 시킨 후 마지막 원소의 값을 반환한다.


10.in_array(찾고자하는 원소,  배열)

배열내에서 찾고자 하는 원소가 있으면 true, 그렇지 않으면 false를 반환

if(in_array("pasta",$menu))

echo "찾았습니다."


11.sizeof(배열)

배열 원소의 개수를 반환한다.


12.range(a , b)

a와 b 사이의 모든 정수를 그 원소로 갖는 배열을 생성한다.

$num=range(1,10)

//$num[0]=1, $num[1]=2,  ....... num[9]=10


13.shuffle(배열)

배열내 원소의 순서를 무작위로 바꾼다.

$num=range(1,10)

shuffle($num)


14.pos(배열)

배열 포인터가 가리키는 원소의 값을 반환한다. current()와 완전히 동일하다


15.sort(배열,[정렬기준])

배열의 원소를 정렬한다.

정렬기준:

SORT_REGULAR : 배열 원소를 정상적으로 비교하여 정렬

SORT_NUMERIC : 수치의 크기를 기준으로 정렬

SORT_STRING   :  문자열로 취급하여 정렬


$num = array (123, 23, 108, 293, 119);
sort ($num);
for ( $i=0 ; $i<sizeof ($num) ; $i++)
 echo $num[$i]." ";               //23    108   119   123   293


sort ($num, SORT_STRING);    //108   119   123   23   293


*ord(값) 해당 값의 아스키 코드값을 얻어온다.


16.ksort(배열, [정렬기준])

배열의 원소를  참조키를 기준으로 정렬한다.


17.asort(배열, [정렬기준])

배열의 원소를 정렬하되 원소의 키 값은 섞이지 않고 고유의 값을 유지시킨다.

$menu=array(123,25,108,291)

asort($menu)

//menu[2]=25

   menu[3]=108

   menu[1]=123

   menu[4]=291


18.rsort(배열, [정렬기준])

배열을 역순으로 정렬한다.


19.arsort(배열, [정렬기준])

배열을 역순으로 정렬하되 원소의 키 값은 섞이지 않고 고유의 값을 유지한다.


20.krsort(배열, [정렬기준])

배열을 역순으로 정렬하되 참조키를 기준으로 정렬한다.


21.array_pop(배열)

배열로부터 마지막 원소를 제거하고 제거된 원소를 반환한다.


22.array_push(배열, 추가할원소1, 추가할원소2 ...)

배열의 마지막 위치에 새로운 원소를 추가하며 증가된 배열의 총크기를 값으로 반환한다.


23.array_shift(배열)

배열의 처음 위치에 있는 원소를 제거하고 제거된 원소를 반환한다.


24.array_unshift(배열, 추가할원소1, 추가할원소2 ...)

배열에 새로운 원소를 추가하되 배열의 처음 위치에 삽입하며 증가된 배열의 총크기를 값으로 반환한다.

기존 배열값이 밀리는 것이지 지워지는 것은 아니다.


25.array_unique(배열)

배열의 원소 중에서 동일한 값을 갖는 원소들의 중복을 제거한다.


26.array_values(배열)

배열의 참조키를 제외한 원소의 값만을 그 원소로 갖는 배열을 반환한다.


27.array_keys(배열, [특정배열의값])

배열의 참조키를 그 원소로 갖는 새로운 배열을 반환한다.

연관배열은 참조키를 스칼라 배열은 인덱스를 그 원소로 갖는다.

배열의 특정 원소값을 지정할 경우 그 키값만을 반환하는 원소 하나짜리 배열이 생성된다.


28.array_reverse(배열)

배열내 원소의 순서를 역전시킨다.


29.array_rand(배열, 추출할 원소개수)

배열에서 무작위로 지정한 개수만큼의 원소를 추출한다.

이때 반환되는 값은 원소의 값이 아니라 원소의 참조키이다.


30.array_pad(배열, 확장후배열크기, 추가할원소)

배열을 지정한 크기만큼 확장하고 확장된 크기만큼 지정한 값을 저장하여 확장된 배열을 반환한다.

확장후배열크기에 음수를 넣으면 추가된 원소가 왼쪽에 붙는다.

$menu=array("pizza","cola","pasta")

$new=array_pad($menu, 5, "tomato")

//$new[0]=pizza  $new[1]=cola  $new[2]=pasta  $new[3]=tomato  $new[4]=tomato


31.array_walk(배열, 함수명)

배열의 각 원소에 사용자가 정의한 함수를 적용한다.


function likefruit($value,$key){

echo "이름 : $value   과일: $key <br>";

}

$fruit=array("영이"=>"apple", "철수"=>"orange", "미숙"=>"banana");

array_walk($fruit, likefruit);

결과:

이름 : apple        과일: 영이
이름 : orange      과일: 철수
이름 : banana     과일: 미숙


32.array_merge(배열1, 배열2 ...)

여러 개의 배열을 하나로 합친다.

만일 합치고자 하는 배열들에 동일한 키값을 가진 원소가 있을 경우 나중값의 원소가 그 값을 대체한다.

$menu1=array("a"=>"pasta", "b"=>"pizza")

$menu2=array("a"=>"cola", "c"=>"pasta")

$menu=array_merge($menu1, $menu2)

//$menu[a]=cola  $menu[b]=pizza  $menu[c]=pasta 


33.array_diff(배열1, 배열2 ...)

인자로 전달한 배열의 차이를 다시 배열의 형태로 반환한다.


34.array_intersect(배열1, 배열2 ...)

인자로 전달받은 배열에서 같은 값을 갖는 원소만을 배열의 형태로 반환한다.


35.array_count_values()

:배열 안에 같은 값이 얼마나 나왔는지 수를 연관배열로 리턴한다.


$array = array(1, "hello", 1, "world", "hello");

$num = array_count_values($array);

//$num[1]=2     $num[hello] = 2    $num[world]=1 


36.print_r()

:배열의 구성 요소를 한 눈에 알 수 있게 정렬해 주는 함수

<pre>

<?php

$a=array ('a'=>'사과', 'b'=>'바나나', 'c'=>array('x','y','x'));

print_r($a);

?>

</pre>


결과:

Array

(

   [a] => 사과

   [b] => 바나나

   [c] => Array

       (

            [0] => x

            [1] => y

            [2] => z

        )

)


37.var_dump()

print_r() 함수보다 더 자세한 배열의 구조를 보여준다. 정수인지, 문자열인지 배열의 형까지 표시된다.


38.foreach()

:list() 함수와 동일한 기능을 하나, 더 빠른 foreach()를 많이 쓴다.

$array라는 배열 값이 존재할 때까지 자동으로 루프를 돈다.


.foreach($array as $value)   :  $array라는 배열의 값만 $value에 할당한다.

.foreach($array as $key=>$value)  : 배열의 키 값은 $key에, 배열값은 $value에 할당한다.


<?

$arr=array("홍길동","임꺽정","이순신");


foreach($arr as $value){

echo $value. "<br>";

}

?>


결과:

홍길동

임꺽정

이순신


'PHP' 카테고리의 다른 글

정규식  (0) 2012.03.14
1. 날짜 및 시간 함수  (0) 2007.11.08

1.checkdate(int month, int day, int year)

연도, 월, 일의 데이터를 입력 받아 해당 연월일이 실제로 타당한 날짜인지 검사한다.
타당하면 true, 그렇지 않을 경우 false를 반환한다.

<?
$res=checkdate(2,29,2001);
if($res){
   echo("입력하신 날짜는 올바른 정보입니다.");
}else{
   echo("입력하신 날짜는 올바르지 않은 정보입니다.");
?>
결과:
입력하신 정보는 올바르지 않은 정보입니다.

2.date(String format, int timestamp)

timestamp에 해당하는 시간을 지정한 형식에 맞게 출력한다
timestamp를 미지정시 현재시간으로 한다.

format------

(연도)
Y   2006
y    06

(월)
M   Mar
F    March
m   03
n     3

(일)
d    01 ~ 31
j     1~9, 10~31

(요일)
l     Sunday    //(L소문자)
D    Sun
w   일:0, 월:1, ......토:6

(시간)
g    1~9, 10~12
h    01~09, 10~12
G    1~9, 10~24
H    01~24
a    am, pm
A    AM, PM

(분)
i     00~59

(초)
s    00~59

(인자로 전달한 날짜가 그 해의 몇 번째 날짜인지 출력)
z    0~364

(인자로 전달한 해당 월의 총 일자 출력)
t     1~31

(윤년인지 여부)
L    윤년:1 평년:0

(기준시점(GMT 1970년 1월1일 00:00:00)으로부터 지난 시간을 초로 출력)



---------------------------------------------------------------------------
포맷           설명                                           변환값 예
---------------------------------------------------------------------------
a       오전과 오후 (소문자)                             am, pm
A       오전과 오후 (대문자)                             AM, PM
d       일 (앞에 0이 붙는 2자리)                         01부터 31
j        일 (앞에 0이 붙지 않는 2자리)                  1부터 31
D       요일 (3글자 영문자)                               Mon부터 Sun
l        요일 (완전한 영문자)                             Sunday    //(L소문자)
w      요일 (숫자표현)                                     일요일:0, 월:1, ......토:6
F       월(완전한 문자)                                    January부터 December
g       시 (0이 붙지 않는 12시간 형식)                01~24
h       시 (0이 붙는 12시간 형식)                       01부터 12
G      시 (0이 붙지 않는 24시간 형식)                 1~24
H      시 (0이 붙는 24시간 형식)                        00부터 23
i        분( 0이 붙는 형식)                                  00부터 59
L       윤년인지 여부 (윤년이며 1, 아니면 0)        1, 0
m       월 (숫자표현, 0이 붙는 형식)                   01부터 12
n       월 (숫자표현, 0이 붙지 않는 형식)             1부터 31
M      월 (짧은 문자 표현, 3문자)                       Jan부터 Dec
s       초 (0이 붙는 형식)                                  00부터 59
Y       연도( 4자릿수 표현)                                2004, 2005 ....
y       연도 (2자릿수 표현)                                04, 05 ...
t        해당월의 총일자                                     31
L       윤년인지                                               여부윤년:1 평년:0
U      기준시점(GMT 1970년 1월1일 00:00:00)으로부터 지난 시간을 초로 출력
----------------------------------------------------------------------------

3.strftime(string format, int timestamp)

date() 함수와 동일한 역할 수행

4.microtime()

time() 함수와 같이 1970년 1월 1일부터 현재까지 흐른 초를 계산한다.
다만 이 함수는 앞 부분에는 마이크로초를 뒷 부분에는 초단위를 출력한다.
0.55103800 1166610609   //microtime() 결과
1166610609                   //time() 결과

5.mktime(시, 분, 초, 월, 일, 년)

1970년 1월 1일 이후부터 입력한 날짜까지 몇 초가 지났는지 값을 리턴한다.

6.time()

1970년 1월 1일부터 현재까지 흐른 초를 리턴한다.
mktime()과 달리 현재까지 값만 계산 가능하다.

'PHP' 카테고리의 다른 글

정규식  (0) 2012.03.14
2. 배열 관련 함수  (0) 2007.11.08

+ Recent posts