이전 목록 다음
채택완료

preg_replace 와 정규표현식 질문

5년 전 3,734

이 코드는 login_check.php 파일에서 차단된 아이디인가 확인하는 코드중 일부입니다.

Copy
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_intercept_date']);

preg_replace는 문자를 치환하는 함수이고,

preg_replace("/찾을 문자/", "변경할 문자", "해당하는 문자열");

 

정규표현식의 내용은 (0~9까지 숫자 4개)(0~9까지 숫자 2개)(0~9까지 숫자 2개) 라고 해석했는데

변경할 문자로 \\1년 \\2월 \\3일 ,이부분이 이해가 안가서 질문드립니다.

 

2020년12월01일 과 같은형식으로 바꿔줄거라는 거 같은데

\\는 왜 들어가는지 년 앞에 숫자는 왜 들어가는지 잘 모르겠습니다.

 

변경할 문자에 들어가는 내용좀 알려주세요.

답변 1개 / 댓글 1개

채택된 답변
+20 포인트

정규식 변환 규칙입니다

 

([0-9]{4})([0-9]{2})([0-9]{2}) 여기서 순서대로 ([0-9]{4}) = \\1 , ([0-9]{2}) = \\2 , ([0-9]{2}) = \\3 으로 값을 변환할수있다고 생각하시면됩니다

 

즉 해당 찾을문자를 정규식 규칙으로 찾아서 "([0-9]{4})년 ([0-9]{2})월 ([0-9]{2})일" 이런식으로 변경한다 라고 해석하시면됩니다

답변에 대한 댓글 1개

답변 너무 갑사합니다~
(괄호)로 묶여있는 것에 번호를 붙이는 개념인가보네요.

답변을 작성하려면 로그인이 필요합니다.