얕고넓은지식/Computer knowledge

PHP 정규식 표현 치환

쪽마 2022. 3. 5. 15:05
반응형

https://ponyozzang.tistory.com/176?category=757972 

 

알기 쉬운 PHP 정규식 표현 preg_match 함수 설명 및 샘플

알기 쉬운 PHP 정규식 표현 preg_match 함수 PHP에서는 preg_match함수를 사용하여 정규식 표현을 작성합니다. preg_match 첫 번째 인수 : 정규식 표현 작성. 두 번째 인수 : 검색 대상 문자열. 세 번째 인수 :

ponyozzang.tistory.com

 

 

알기 쉬운 PHP 정규식 표현 preg_match 함수 

 

PHP에서는 preg_match함수를 사용하여 정규식 표현을 작성합니다.

 

preg_match

첫 번째 인수 : 정규식 표현 작성.

두 번째 인수 : 검색 대상 문자열.

세 번째 인수 : 배열 변수 반환. 패턴 매치에서 매칭된 값을 배열로 저장.

반환값 : 매칭에 성공하면 1, 실패하면 0이 반환

 

샘플

<?php
$text = 'My name is Tom';
$reg = preg_match('/\btom\b/i',$text,$matches);
var_dump($matches);
?>

tom이라는 문자열을 대문자 소문자 관계없이 매칭한 값을 취득하는 정규식 표현입니다.

결과는 다음과 같습니다.

 

결과

array(1) { [0]=> string(3) "Tom" }

 

preg_match_all

preg_match은 매칭되는 값을 찾게 되면 그 시점에서 검색이 종료 됩니다.

하지만 매칭되는 모든 값을 취득하고 싶은 경우에는 적합하지 않기 때문에 매칭되는 모든 값을 취득하고 싶을 때에는 preg_match_all 함수를 사용합니다.

 

샘플

<?php
$text = 'My name is Tom. I heard You are also tom, right? No, I am Tommy.';
$reg = preg_match_all('/\btom\b/i',$text,$matches);
var_dump($matches);
?>

 

결과 

array(1) { [0]=> array(2) { [0]=> string(3) "Tom" [1]=> string(3) "Tom" } }

검색 결과에는 Tom과 tom에 매칭되어 2개의 값을 배열로 취득하였습니다.

참고로 Tommy에는 매칭되지 않습니다.(\b으로 지정했기 때문에)

 

preg_replace

preg_replace는 검색 문자열과 매칭되는 값이 있으면 치환을 시켜주는 함수입니다.

첫 번째 인수 : 정규식 표현 작성.

두 번째 인수 : 치환 하고 싶은 문자 설정.

세 번째 인수 : 대상 문자열.

네 번째 인수 : 생략 가능. 하나만 치환 하고 싶은 경우 1을 설정.

 

샘플

<?php
$text = 'I like a dog';
$reg = preg_replace('/a (.*)/i', 'a $1 race', $text);
echo $reg."\n";
?>

 

결과 

I like a race
반응형