테스트 사이트 - 개발 중인 베타 버전입니다

preg_replace 와 정규표현식 질문 채택완료

그누보드이해하기 4년 전 조회 3,305

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

</p>

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

<p>

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

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

 

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

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

 

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

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

 

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

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

답변 1개

채택된 답변
+20 포인트
Policia
4년 전

정규식 변환 규칙입니다

 

([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개

그누보드이해하기
4년 전
답변 너무 갑사합니다~
(괄호)로 묶여있는 것에 번호를 붙이는 개념인가보네요.

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

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

로그인