정규 표현식은 웹 프로그래밍을 할 때 문자열을 정교하게 처리하기 위해 필요합니다.
먼저, 정규 표현식에서 사용되는 패턴 문자 몇 가지를 소개하면 아래와 같습니다.
+ -> '+' 표시 바로 앞의 문자열(문자)이 한 번 이상 존재하는 것을 의미함
^ -> '^' 표시 뒤의 문자열(문자)로 시작되는 것을 의미함
[ ] -> '[ ]' 로 둘러쌓인 문자열(문자) 중에서 하나의 문자를 의미함
[^ ] -> '[ ]' 패턴의 문자열(문자)을 제외한 나머지 문자열(문자)을 의미함
{ } -> '{ }' 앞의 문자열(문자)이 '{ }' 안의 숫자가 나타내는 갯수만큼 존재하는 것을 의미함
[[:digit:]] -> 하나의 숫자(0 에서 9 까지) 를 의미함
[[:alpha:]] -> 하나의 영문자(a 에서 Z 까지) 를 의미함
[[:alnum:]] -> 하나의 숫자(0 에서 9 까지) 또는 영문자(a 에서 Z 까지) 를 의미함
[[:space:]] -> 하나의 공백 문자(blank) 를 의미함
위 패턴 문자를 사용한 정규 표현식이 어떻게 사용되는지 살펴보기 전에, 위와 같은 패턴 문자로 나타내어진 정규 표현식을 사용하기 위해 필요한 함수가 있는데, ereg() 함수가 있습니다.
ereg() 함수는 일반적으로 두 개의 인자를 취하는데, 첫 번째 인자는 패턴 문자로 나타내어진 정규 표현식이 오며 두 번째 인자는 그 정규 표현식에 의해 검색될 대상 문자열이 옵니다.
이렇게 ereg() 함수 내의 두 번째 인자인 검색 대상 문자열에서 첫 번째 인자인 정규 표현식의 패턴이 존재할 경우 ereg() 함수는 true 값을 반환하며 그렇지 않을 경우에는 false 값을 반환하게 됩니다.
그럼, ereg() 함수를 사용하여 위 패턴 문자로 나타내어진 정규 표현식이 어떻게 사용되는지 몇 가지 예제를 살펴보겠습니다.
<?
$string = "mizzle PHP 2002";
# '+' 패턴 검사
if(ereg("iz+", $string)) {
echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>");
}
# '^' 패턴 검사
if(ereg("^mi", $string)) {
echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>");
}
# '[ ]' 패턴 검사
if(ereg("[si]m", $string)) {
echo("지정된 패턴과 일치합니다.<br>");
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인
}
# '[[:digit:]]' 패턴 검사
if(ereg("[[:digit:]]{4}", $string)) {
echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>");
}
# '[[:alpha]]' 패턴 검사
if(ereg("[[:alpha:]]{7}", $string)) {
echo("지정된 패턴과 일치합니다.<br>");
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인
}
# '[[:space]]' 패턴 검사
if(ereg("[[:space:]]{2}", $string)) {
echo("지정된 패턴과 일치합니다.<br>");
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인
}
?>
위 예제를 실행하게 되면, 위 예제 코드의 주석("#실행 라인")으로 표기한 라인이 실행되는 것을 볼 수 있습니다.
위 예제 중 몇 가지만 살펴보면,
'+' 패턴 검사 코드의 경우, "iz" 문자열이 한 번 이상 존재해야 함을 의미하는 iz+ 패턴이 "mizzle PHP 2002" 문자열에 존재하기 때문에 비교 조건식에 일치하는 결과가 출력됩니다.
'[ ]' 패턴 검사 코드의 경우, "sm" 또는 "im" 문자열이 존재해야 함을 의미하는 [si]m 패턴이 "mizzle PHP 2002" 문자열에 존재하지 않기 때문에 비교 조건식에 일치하지 않는 결과가 출력됩니다.
'[[:digit:]]' 패턴 검사 코드의 경우, 연속되는 숫자 4개의 문자가 존재해야 함을 의미하는 [[:digit:]]{4} 패턴이 "mizzle PHP 2002" 문자열에 존재하기 때문에 비교 조건식에 일치하는 결과가 출력됩니다.
이상, 정규 표현식의 기초에 대해서 살펴보았습니다.
먼저, 정규 표현식에서 사용되는 패턴 문자 몇 가지를 소개하면 아래와 같습니다.
+ -> '+' 표시 바로 앞의 문자열(문자)이 한 번 이상 존재하는 것을 의미함
^ -> '^' 표시 뒤의 문자열(문자)로 시작되는 것을 의미함
[ ] -> '[ ]' 로 둘러쌓인 문자열(문자) 중에서 하나의 문자를 의미함
[^ ] -> '[ ]' 패턴의 문자열(문자)을 제외한 나머지 문자열(문자)을 의미함
{ } -> '{ }' 앞의 문자열(문자)이 '{ }' 안의 숫자가 나타내는 갯수만큼 존재하는 것을 의미함
[[:digit:]] -> 하나의 숫자(0 에서 9 까지) 를 의미함
[[:alpha:]] -> 하나의 영문자(a 에서 Z 까지) 를 의미함
[[:alnum:]] -> 하나의 숫자(0 에서 9 까지) 또는 영문자(a 에서 Z 까지) 를 의미함
[[:space:]] -> 하나의 공백 문자(blank) 를 의미함
위 패턴 문자를 사용한 정규 표현식이 어떻게 사용되는지 살펴보기 전에, 위와 같은 패턴 문자로 나타내어진 정규 표현식을 사용하기 위해 필요한 함수가 있는데, ereg() 함수가 있습니다.
ereg() 함수는 일반적으로 두 개의 인자를 취하는데, 첫 번째 인자는 패턴 문자로 나타내어진 정규 표현식이 오며 두 번째 인자는 그 정규 표현식에 의해 검색될 대상 문자열이 옵니다.
이렇게 ereg() 함수 내의 두 번째 인자인 검색 대상 문자열에서 첫 번째 인자인 정규 표현식의 패턴이 존재할 경우 ereg() 함수는 true 값을 반환하며 그렇지 않을 경우에는 false 값을 반환하게 됩니다.
그럼, ereg() 함수를 사용하여 위 패턴 문자로 나타내어진 정규 표현식이 어떻게 사용되는지 몇 가지 예제를 살펴보겠습니다.
<?
$string = "mizzle PHP 2002";
# '+' 패턴 검사
if(ereg("iz+", $string)) {
echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>");
}
# '^' 패턴 검사
if(ereg("^mi", $string)) {
echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>");
}
# '[ ]' 패턴 검사
if(ereg("[si]m", $string)) {
echo("지정된 패턴과 일치합니다.<br>");
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인
}
# '[[:digit:]]' 패턴 검사
if(ereg("[[:digit:]]{4}", $string)) {
echo("지정된 패턴과 일치합니다.<br>"); # 실행 라인
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>");
}
# '[[:alpha]]' 패턴 검사
if(ereg("[[:alpha:]]{7}", $string)) {
echo("지정된 패턴과 일치합니다.<br>");
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인
}
# '[[:space]]' 패턴 검사
if(ereg("[[:space:]]{2}", $string)) {
echo("지정된 패턴과 일치합니다.<br>");
} else {
echo("지정된 패턴과 일치하지 않습니다.<br>"); # 실행 라인
}
?>
위 예제를 실행하게 되면, 위 예제 코드의 주석("#실행 라인")으로 표기한 라인이 실행되는 것을 볼 수 있습니다.
위 예제 중 몇 가지만 살펴보면,
'+' 패턴 검사 코드의 경우, "iz" 문자열이 한 번 이상 존재해야 함을 의미하는 iz+ 패턴이 "mizzle PHP 2002" 문자열에 존재하기 때문에 비교 조건식에 일치하는 결과가 출력됩니다.
'[ ]' 패턴 검사 코드의 경우, "sm" 또는 "im" 문자열이 존재해야 함을 의미하는 [si]m 패턴이 "mizzle PHP 2002" 문자열에 존재하지 않기 때문에 비교 조건식에 일치하지 않는 결과가 출력됩니다.
'[[:digit:]]' 패턴 검사 코드의 경우, 연속되는 숫자 4개의 문자가 존재해야 함을 의미하는 [[:digit:]]{4} 패턴이 "mizzle PHP 2002" 문자열에 존재하기 때문에 비교 조건식에 일치하는 결과가 출력됩니다.
이상, 정규 표현식의 기초에 대해서 살펴보았습니다.
댓글 1개
hoonji
11년 전
http://regex101.com/ 와 같은 정규표현식 테스트터를 이용해 확인하면서 작업하시면 더욱 편리합니다~
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 330 |
prosper
|
20년 전 | 2243 | |
| 329 |
prosper
|
20년 전 | 1856 | |
| 328 |
prosper
|
20년 전 | 1666 | |
| 327 | 20년 전 | 3743 | ||
| 326 | 20년 전 | 4824 | ||
| 325 |
hwatta
|
20년 전 | 2450 | |
| 324 |
|
20년 전 | 3120 | |
| 323 | 20년 전 | 5832 | ||
| 322 |
hwatta
|
20년 전 | 2819 | |
| 321 |
hwatta
|
20년 전 | 2298 | |
| 320 |
yesmoa
|
20년 전 | 4558 | |
| 319 | 20년 전 | 2655 | ||
| 318 | 20년 전 | 2225 | ||
| 317 |
kyodon
|
20년 전 | 2752 | |
| 316 | 20년 전 | 2558 | ||
| 315 |
|
20년 전 | 2868 | |
| 314 |
|
20년 전 | 3313 | |
| 313 |
|
20년 전 | 2624 | |
| 312 |
yesmoa
|
20년 전 | 4699 | |
| 311 | 20년 전 | 3232 | ||
| 310 |
홀로남은자
|
20년 전 | 4539 | |
| 309 | 20년 전 | 2995 | ||
| 308 | 20년 전 | 4108 | ||
| 307 | 20년 전 | 4341 | ||
| 306 | 20년 전 | 7012 | ||
| 305 | 20년 전 | 3853 | ||
| 304 | 20년 전 | 2742 | ||
| 303 |
크리스탈처럼
|
20년 전 | 4380 | |
| 302 | 20년 전 | 2190 | ||
| 301 |
|
20년 전 | 4311 | |
| 300 | 20년 전 | 3772 | ||
| 299 | 20년 전 | 2576 | ||
| 298 | 20년 전 | 4804 | ||
| 297 |
|
20년 전 | 2510 | |
| 296 | 20년 전 | 4505 | ||
| 295 | 20년 전 | 3552 | ||
| 294 | 20년 전 | 3574 | ||
| 293 | 20년 전 | 3806 | ||
| 292 | 20년 전 | 3190 | ||
| 291 |
yesmoa
|
20년 전 | 5908 | |
| 290 | 20년 전 | 2927 | ||
| 289 | 20년 전 | 5831 | ||
| 288 |
|
20년 전 | 2353 | |
| 287 |
|
20년 전 | 1771 | |
| 286 |
|
20년 전 | 2125 | |
| 285 |
|
20년 전 | 3524 | |
| 284 |
|
20년 전 | 2022 | |
| 283 |
|
20년 전 | 4387 | |
| 282 | 20년 전 | 3370 | ||
| 281 |
|
20년 전 | 2193 | |
| 280 |
|
20년 전 | 7787 | |
| 279 | 20년 전 | 5525 | ||
| 278 | 20년 전 | 2976 | ||
| 277 |
|
20년 전 | 5558 | |
| 276 | 20년 전 | 2346 | ||
| 275 | 20년 전 | 2588 | ||
| 274 | 20년 전 | 2352 | ||
| 273 | 20년 전 | 2200 | ||
| 272 | 20년 전 | 2126 | ||
| 271 | 20년 전 | 2590 | ||
| 270 | 20년 전 | 2595 | ||
| 269 | 20년 전 | 2463 | ||
| 268 | 20년 전 | 2666 | ||
| 267 | 20년 전 | 2349 | ||
| 266 | 20년 전 | 2555 | ||
| 265 | 20년 전 | 3484 | ||
| 264 |
|
20년 전 | 5342 | |
| 263 |
|
20년 전 | 3705 | |
| 262 | 20년 전 | 3158 | ||
| 261 |
허저비
|
20년 전 | 5909 | |
| 260 |
|
20년 전 | 5703 | |
| 259 | 20년 전 | 4123 | ||
| 258 | 20년 전 | 2365 | ||
| 257 | 20년 전 | 3171 | ||
| 256 | 20년 전 | 1890 | ||
| 255 | 20년 전 | 1551 | ||
| 254 | 20년 전 | 3126 | ||
| 253 | 20년 전 | 3535 | ||
| 252 | 20년 전 | 5099 | ||
| 251 | 20년 전 | 5795 | ||
| 250 | 20년 전 | 3663 | ||
| 249 | 20년 전 | 5000 | ||
| 248 | 20년 전 | 3272 | ||
| 247 | 20년 전 | 3622 | ||
| 246 |
|
20년 전 | 7933 | |
| 245 |
|
20년 전 | 5888 | |
| 244 | 20년 전 | 4471 | ||
| 243 |
|
20년 전 | 4030 | |
| 242 | 20년 전 | 2757 | ||
| 241 | 20년 전 | 2701 | ||
| 240 | 20년 전 | 2340 | ||
| 239 | 20년 전 | 1639 | ||
| 238 |
아우겐나이스
|
20년 전 | 2243 | |
| 237 |
email
|
20년 전 | 3668 | |
| 236 | 20년 전 | 4127 | ||
| 235 | 20년 전 | 10449 | ||
| 234 | 20년 전 | 5043 | ||
| 233 | 20년 전 | 3357 | ||
| 232 | 20년 전 | 3181 | ||
| 231 | 20년 전 | 3820 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기