몽상실현개발주의

[생활코딩] 13.5 치환 1 ~ 13.6 치환 2 본문

Language/php

[생활코딩] 13.5 치환 1 ~ 13.6 치환 2

migrationArc 2021. 5. 18. 22:35

[생활코딩] 13.5 치환 1 ~ 13.6 치환 2

생활코딩 php 강좌

13. PHP와 정규표현식

13.5 치환 1

  • preg_replace(pattern, replacement, 변경 대상)
    • patterun 을 검색한 다음 replacement 로 치환을 수행
    • 변경된 값을 return
    • 참고

 

<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>
  
// April1,2003
  • "April 15, 2003" -> "April1,2003"
  • "/(\w+) (\d+), (\d+)/i"
    • "(\w+)" : 문자열, 1번 index 에 저장
    • " " : 공백 문자
    • "(\d+)" : digit 문자열, 2번 index 에 저장
    • "," : "," 문자
    • " " : 공백 문자
    • "(\d+)" : digit 문자열, 3번 index 에 저장
  • "${1}1,$3"
    • "${1}" : 1번 index 하위 표현식 == April
    • "," : "," 문자
    • "$3" : 3번 index 하위 표현식 == 2003

 

 

 

13.6 치환 2

<?php
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';

echo preg_replace($patterns, $replacements, $string);
?>
  
// The bear bloack slow jumped over the lazy dog.
  • "quick" -> "slow"
  • "brown" -> "black"
  • "fox" -> "bear"

 

<?php
$patterns = array(
    '/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
    '/^\s*{(\w+)}\s*=/');
$replace = array('\3/\4/\1\2', '$\1 =');

echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27');
?>

// $startDate = 5/27/1999
  • $replace
    • "\3/\4/\1\2" = 5/27/1999
      • "\3": subPattern0[3]
      • "/" : "/"
      • "\4": subPatterns0[4]
      • "/" : "/"
      • "\1" :subPatterns0[1]
      • "\2": subPatterns0[2]
    • "$\1 =" = "$startDate ="
      • "$": "$"
      • "\1": subPattern1[1]

 

 

 


이 글의 모든 사진과 내용의 출처는 생활코딩에 있음을 알려드립니다.

http://www.inflearn.com/course/%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9-php-%EA%B0%95%EC%A2%8C/lecture/230?tab=note

 

생활코딩 - PHP 기본 A 부터 Z 까지 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

Comments