정규표현식 의 핵심. 의미있는 메타 문자들 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개

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

프로그램

+
제목 글쓴이 날짜 조회
12년 전 조회 1,014
12년 전 조회 808
12년 전 조회 1,890
12년 전 조회 5,898
12년 전 조회 1,509
12년 전 조회 4,742
12년 전 조회 972
12년 전 조회 4,139
12년 전 조회 1,281
12년 전 조회 1,139
12년 전 조회 1,722
12년 전 조회 1,353
12년 전 조회 604
12년 전 조회 575
12년 전 조회 2만
12년 전 조회 542
12년 전 조회 1,107
12년 전 조회 1,118
12년 전 조회 1,356
12년 전 조회 3,507
12년 전 조회 738
12년 전 조회 2,240
12년 전 조회 4,922
12년 전 조회 692
12년 전 조회 3,882
12년 전 조회 1,073
12년 전 조회 3,798
12년 전 조회 948
13년 전 조회 1,795
13년 전 조회 966
13년 전 조회 2,191
13년 전 조회 7,972
13년 전 조회 1,959
13년 전 조회 1,759
13년 전 조회 1,569
13년 전 조회 632
13년 전 조회 2,152
13년 전 조회 1,879
13년 전 조회 662
13년 전 조회 1,235
13년 전 조회 651
13년 전 조회 937
13년 전 조회 1,225
13년 전 조회 3,613
13년 전 조회 2,145
13년 전 조회 2,332
13년 전 조회 3,701
13년 전 조회 3,515
13년 전 조회 3,173
13년 전 조회 4,042
13년 전 조회 1,055
13년 전 조회 6,016
13년 전 조회 1,408
13년 전 조회 1,252
13년 전 조회 3,433
13년 전 조회 3,065
13년 전 조회 5,222
13년 전 조회 2,725
13년 전 조회 3,368
13년 전 조회 1,059
13년 전 조회 886
13년 전 조회 2,053
13년 전 조회 840
13년 전 조회 2,243
13년 전 조회 1,543
13년 전 조회 1,151
13년 전 조회 2,138
13년 전 조회 2,348
13년 전 조회 1,345
13년 전 조회 828
13년 전 조회 1,373
13년 전 조회 863
13년 전 조회 1,246
13년 전 조회 3,889
13년 전 조회 3,980
13년 전 조회 1,398
13년 전 조회 6,991
13년 전 조회 7,580
13년 전 조회 2,339
13년 전 조회 3,890
13년 전 조회 662
13년 전 조회 3,695
13년 전 조회 3,520
13년 전 조회 2,759
13년 전 조회 2,854
13년 전 조회 2,386
13년 전 조회 2,281
13년 전 조회 5,202
13년 전 조회 2,844
13년 전 조회 3,162
13년 전 조회 2,288
13년 전 조회 6,858
13년 전 조회 2,595
13년 전 조회 3,455
13년 전 조회 2,352
13년 전 조회 4,842
13년 전 조회 3,715
13년 전 조회 2,574
13년 전 조회 2,266
13년 전 조회 1,316
🐛 버그신고