[정규식] 재미난 정규식 10
재미난 정규식이 10 회까지 왔네요. 

(개인정보 뭐시기 떠서 이미지로 처리했습니다 --; )
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 11개
$str = <<<EOT
010-123-4567
02-1234-4567
044-765-4321
EOT;
function callback($m)
{
return $m[1].str_repeat('*', strlen($m[2])).$m[3];
}
// 원래는 간단한 코드로 했다가 * 갯수를 숫자 갯수 만큼 맞추기 위해 callback 을 사용했습니다.
echo preg_replace_callback('#(\d+-)(\d+)(-\d+)#S', 'callback', $str);
?>
다른 건 없을까요 ~ ?
preg_match 후에 for 문이나 다른 함수 사용하는 것 아니죠?
010-123-4567 -> 010-***-4567
02-1234-4567 -> 02-****-4567
044-765-4321 -> 044-***-4321
로 한방에 나와야 하는거죠?
$str = <<<EOT
010-123-4567
02-1234-4567
044-765-4321
EOT;
echo preg_replace("#(\d+-)(\d+)(-\d+)#e", '"$1".str_repeat("*",strlen("$2"))."$3"', $str);
?>
http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php
e 변경자는 PHP 5.5.0 부터 DEPRECATED 된다네요.
남친: 정규식
여친: 변경자
회원님들이 정규식을 좋아하지 않은가 봅니다.
물론 문제가 약간 어려운 게 없지 않은데 좀 더 접근하기 쉽게 할 수 있는 방법을 고민해 봐야겠습니다.