정규식 문자열 치환 질문있어요
본문
o1o-123o-0567o 이라는 문자가 있다고 가정할 때
첫번째 '-' 과 두번째 '-' 사이의 문자열을 다른 문자열로 치환하려면 어떻게 해야하나요?
답변 1
for beginners
o1o-123o-056o
↓
^o1o-123o-056o$ ... ^: 시작, $: 끝
↓
^\d+-\d+-\d+$ ... \d 또는 [0-9]: 숫자, +: 한 글자 이상
↓
^(\d+-)(\d+)(-\d+)$ ... o1o-, 123o, -056o매칭
$hp = 'o1o-123o-056o;
echo preg_replace_callback('/^(\d+-)(\d+)(-\d+)$/', function ($m) { return $m[1].str_repeat('*', strlen($m[2])).$m[3]; }, $hp);
↓
'o1o-', '0567o' 길이(4)만큼 * 반복, '-056o'
010-****-0567o
이 정도만으로도 이와 비슷한 유형은 원하는 부분의 치환을 자유롭게 할 수 있습니다.
답변을 작성하시기 전에 로그인 해주세요.