유

정규표현식 의 핵심. 의미있는 메타 문자들 1

대단할것은 없는 강좌이지만,
제 강좌를 출처를 밝히고 외부로 퍼가는 것은 허용하지만,
다른 강좌의 자료나 책의 자료로 사용되거나 부분적인 인용은 허용하지 않습니다.

강좌는 php 5. 대를 기준으로 하며, PCRE (펄과 호환 되는 정규표현식)을 다룹니다.
PCRE 는 preg_ 로 시작되는 내장함수와 함께 사용되어지는 정규표현식을 말합니다.

PCRE > 정규표현식 의 핵심. 의미있는 메타 문자들 1

이전 내용에서는 php 의 내장함수인 preg_match 에 대해서 알아보았습니다.
이번 내용에서는 정규표현식의 핵심이라고 볼수 있는 의미 있는 메타 문자에 대해서 알아보도록 하겠습니다.
사용하는 상황에 따라 2가지 이상의 의미를 같는 메타문자들도 있지만, 이번 내용에서는 가장 기본적인 의미에 대해서 알아 보겠습니다.

1. ^
이것은 문자열의 맨처음 을 뜻 합니다.

다음과 같은 문자열이 있을때
'this is flower'
이 문자열의 시작이 알파벳소문자로 되어있는지 체크하거나, 또는 맨처음 알파벳문자열을 가져와야 할때와 같은 경우에 주로 사용됩니다.

예제5> test5.php

<?php

$string = 'this is flower';

if (preg_match('/^[a-z]/', $string)) {

    echo '<font color="blue">' . $string . ' 은 알파벳 소문자로 시작되는 문자열 입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 알파벳 소문자로 시작되는 않는 문자열 입니다.</font><br />' . PHP_EOL;
}

$string = '100 is hundred';

if (preg_match('/^[a-z]/', $string)) {

    echo '<font color="blue">' . $string . ' 은 알파벳 소문자로 시작되는 문자열 입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 알파벳 소문자로 시작되는 않는 문자열 입니다.</font><br />' . PHP_EOL;
}

$string = 'this is flower';
preg_match('/^[a-z]+/', $string, $matches);

if (!empty($matches[0])) {

    echo '<font color="blue">' . $string . ' 은 <b>' . $matches[0] . '</b> 로 시작되는 문자열 입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 알파벳 소문자로 시작되는 않는 문자열 입니다.</font><br />' . PHP_EOL;
}

$string = 'This is flower';
preg_match('/^[a-z]+/', $string, $matches);

if (!empty($matches[0])) {

    echo '<font color="blue">' . $string . ' 은 <b>' . $matches[0] . '</b> 로 시작되는 문자열 입니다.<br /></font>' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 알파벳 소문자로 시작되는 않는 문자열 입니다.</font><br />' . PHP_EOL;
}

?>


결과 :

this is flower 은 알파벳 소문자로 시작되는 문자열 입니다.
100 is hundred 은 알파벳 소문자로 시작되는 않는 문자열 입니다.
this is flower 은 this 로 시작되는 문자열 입니다.
This is flower 은 알파벳 소문자로 시작되는 않는 문자열 입니다.

※ 나중에 설명하겠지만, + 이것은 바로 앞의 문자나 문자열이 하나 이상 이라는 의미 입니다.



2. $
이것은 문자열의 맨마지막 을 뜻 합니다.

다음과 같은 문자열이 있을때
'this is flower'
이 문자열의 끝이 알파벳소문자로 되어있는지 체크하거나, 또는 맨 끝 알파벳문자열을 가져와야 할때와 같은 경우에 주로 사용됩니다.

예제6> test6.php

<?php

$string = 'this is flower';

if (preg_match('/[a-z]$/', $string)) {

    echo '<font color="blue">' . $string . ' 은 알파벳 소문자로 끝나는 문자열 입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 알파벳 소문자로 끝나지 않는 문자열 입니다.</font><br />' . PHP_EOL;
}

$string = 'hundred is 100';

if (preg_match('/[a-z]$/', $string)) {

    echo '<font color="blue">' . $string . ' 은 알파벳 소문자로 끝나는 문자열 입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 알파벳 소문자로 끝나지 않는 문자열 입니다.</font><br />' . PHP_EOL;
}

$string = 'this is flower';
preg_match('/[a-z]+$/', $string, $matches);

if (!empty($matches[0])) {

    echo '<font color="blue">' . $string . ' 은 <b>' . $matches[0] . '</b> 로 끝나는 문자열 입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 알파벳 소문자로 끝나지 않는 문자열 입니다.</font><br />' . PHP_EOL;
}

$string = 'This is FLOWER';
preg_match('/[a-z]+$/', $string, $matches);

if (!empty($matches[0])) {

    echo '<font color="blue">' . $string . ' 은 <b>' . $matches[0] . '</b> 로 끝나는 문자열 입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 알파벳 소문자로 끝나지 않는 문자열 입니다.</font><br />' . PHP_EOL;
}

$string = 'flower';
preg_match('/^[a-z]+$/', $string, $matches);

if (!empty($matches[0])) {

    echo '<font color="blue">' . $string . ' 은 알파벳 소문자로만 구성된 문자열 입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 알파벳 소문자로만 구성되지 않은 문자열 입니다.</font><br />' . PHP_EOL;
}

$string = 'FLOWER';
preg_match('/^[a-z]+$/', $string, $matches);

if (!empty($matches[0])) {

    echo '<font color="blue">' . $string . ' 은 알파벳 소문자로만 구성된 문자열 입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 알파벳 소문자로만 구성되지 않은 문자열 입니다.</font><br />' . PHP_EOL;
}

?>


결과 :

this is flower 은 알파벳 소문자로 끝나는 문자열 입니다.
hundred is 100 은 알파벳 소문자로 끝나지 않는 문자열 입니다.
this is flower 은 flower 로 끝나는 문자열 입니다.
This is FLOWER 은 알파벳 소문자로 끝나지 않는 문자열 입니다.
flower 은 알파벳 소문자로만 구성된 문자열 입니다.
FLOWER 은 알파벳 소문자로만 구성되지 않은 문자열 입니다.



3. . (dot)
이것은 아무 문자나 하나 를 뜻합니다.

예제7> test7.php

<?php

$string = 'This';

if (preg_match('/^.{4}$/', $string)) {

    echo '<font color="blue">' . $string . ' 은 4개의 문자가 모인 문자열입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 4개의 문자가 모인 문자열이 아닙니다.</font><br />' . PHP_EOL;
}

$string = 'Flower';

if (preg_match('/^.{4}$/', $string)) {

    echo '<font color="blue">' . $string . ' 은 4개의 문자가 모인 문자열입니다.</font><br />' . PHP_EOL;
}
else {

    echo '<font color="red">' . $string . ' 은 4개의 문자가 모인 문자열이 아닙니다.</font><br />' . PHP_EOL;
}

?>


결과 :

This 은 4개의 문자가 모인 문자열입니다.
Flower 은 4개의 문자가 모인 문자열이 아닙니다.
|

댓글 12개

예제가 있어 이해하기 한결 쉬월 합니다. 감사합니다....^^
넵 감사합니다. ^^
이해 하기 쉽도록 정리가 잘되어 있어서 좋네요. 감사합니다^^
이해하기 쉬워서 다행입니다. 감사합니다.
잘 봤습니다.. 감사합니다 ^^
넵 고맙습니다.^^
이해가 쏙쏙! ^^ 감사합니다.
네 ^^ 감사합니다.
기초설명을 너무 쉽게 잘 설명해주셨네요. 감사합니다.
네에 고맙습니다.
강좌 감사합니다.
감사합니다. 정말 많은 도움이 됩니다. ^^
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
13-03-03 조회 6,246
13-03-01 조회 5,573
13-03-01 조회 8,315
13-03-01 조회 6,311
13-02-26 조회 3,918
13-02-26 조회 3,861
13-02-26 조회 4,759
13-02-24 조회 8,171
13-02-24 조회 4,258
13-02-24 조회 3,500
13-02-24 조회 5,316
13-02-24 조회 5,308
13-02-24 조회 4,375
13-02-24 조회 5,712
13-02-24 조회 9,400
13-02-14 조회 5,110
13-02-13 조회 9,039
13-01-29 조회 7,679
13-01-24 조회 5,029
13-01-24 조회 4,904
13-01-17 조회 4,315
13-01-16 조회 4,346
13-01-08 조회 4,400
12-12-27 조회 4,059
12-12-20 조회 1.1만
12-12-20 조회 3,382
12-12-06 조회 4,369
12-12-01 조회 4,131
12-11-28 조회 5,698
12-11-25 조회 5,405
12-10-20 조회 4,667
12-10-03 조회 4,831
12-09-26 조회 4,991
12-09-15 조회 8,445
12-09-14 조회 5,459
12-09-11 조회 3,966
12-09-10 조회 3,978
12-09-05 조회 8,861
12-08-29 조회 4,660
12-08-26 조회 3,791
12-08-23 조회 3,489
12-08-22 조회 3,576
12-08-22 조회 4,389
12-08-21 조회 3,536
12-08-20 조회 3,456
12-08-20 조회 9,259
12-08-15 조회 4,379
12-08-13 조회 3,297
12-08-11 조회 4,719
12-08-05 조회 4,565
12-08-03 조회 3,349
12-08-03 조회 4,042
12-08-02 조회 5,024
12-07-29 조회 4,132
12-07-26 조회 3,708
12-07-26 조회 3,578
12-07-22 조회 3,491
12-07-20 조회 3,325
12-07-19 조회 4,191
12-07-19 조회 3,449
12-07-16 조회 3,564
12-07-16 조회 4,485
12-07-15 조회 3,561
12-07-12 조회 7,389
12-07-12 조회 5,033
12-07-11 조회 3,079
12-07-09 조회 3,240
12-07-05 조회 3,852
12-07-04 조회 4,423
12-07-04 조회 3,828
12-07-04 조회 4,350
12-06-29 조회 3,814
12-06-27 조회 3,405
12-06-24 조회 3,881
12-06-22 조회 4,189
12-06-22 조회 8,603
12-06-22 조회 3,254
12-06-21 조회 3,287
12-06-17 조회 3,915
12-06-14 조회 4,014
12-06-14 조회 3,297
12-06-08 조회 4,445
12-06-06 조회 3,406
12-06-04 조회 4,160
12-05-26 조회 4,977
12-05-26 조회 3,934
12-05-25 조회 3,229
12-05-24 조회 3,331
12-05-22 조회 3,375
12-05-20 조회 3,003
12-05-16 조회 3,138
12-05-15 조회 3,533
12-05-10 조회 3,964
12-05-08 조회 3,486
12-05-04 조회 3,339
12-05-03 조회 4,294
12-05-02 조회 3,429
12-05-02 조회 3,204
12-05-02 조회 3,303
12-04-26 조회 3,452