preg_replace 정규식 어디가 잘못됬는지 좀 봐주세요 채택완료
카르스트
3년 전
조회 1,969
preg_replace 정규식 이용해서 33을 99로 바꾸고싶습니다 어떻게해야하나요?
단 숫자위치는 유동적인상황이니 위치로 찾는것만 제외하고요
숫자 67는 고정이고
그뒤숫자33을 99로 바꾸고싶습니다
밑에와같이하니까 67이 없어지네요
<?php
$str = "고깃집top68858867330104A123,감사@500입니다.";
$su = preg_replace("/67([\d]{2})/", "99", $str);
echo $su;
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
답변에 대한 댓글 3개
�
카르스트
3년 전
�
들레아빠
3년 전
$su = preg_replace("/67([\d]{2})/", "6799", $str);
�
들레아빠
3년 전
채택 감사드립니다.
댓글을 작성하려면 로그인이 필요합니다.
3년 전
질문 내용이 도대체 무엇인지 이해가 안되네요
6733--> 6799로 바꾼다는 것인지
6721, 6722, 6733, 6745...처럼 67뒤에 따라나오는 숫자를 바꾼다는 것인지...
질문을 쉽게 하가 그렇게 어려운가봅니다
로그인 후 평가할 수 있습니다
답변에 대한 댓글 3개
�
카르스트
3년 전
먼저 관심 가져주셔 감사하고요^^;
6733--> 6799로 그것만 바꾸고 싶다는뜻입니다
즉
고깃집top68858867330104A123,감사@500입니다
=============>
고깃집top68858867990104A123,감사@500입니다
이렇게 바꾸고싶다는 말입니다
참고로 99만 분리하는건 밑에와같이 하면됬는데
$cnt = preg_match('/8867([\d]{2})/isx', $str, $out);
echo $out[1];
33을 99로 바꾸는게 왜 안되는지 모르겠네요
6733--> 6799로 그것만 바꾸고 싶다는뜻입니다
즉
고깃집top68858867330104A123,감사@500입니다
=============>
고깃집top68858867990104A123,감사@500입니다
이렇게 바꾸고싶다는 말입니다
참고로 99만 분리하는건 밑에와같이 하면됬는데
$cnt = preg_match('/8867([\d]{2})/isx', $str, $out);
echo $out[1];
33을 99로 바꾸는게 왜 안되는지 모르겠네요
�
균이
3년 전
이런 것은 정규식도 필요 없습니다
$su = str_replace("6733","6799", $str );
----------------------
위 정규식은 패턴의 문자열을 99로 바꾼다 입니다
즉 6712, 6722,6700 등 67 및 뒤의 숫자2자리까지를 몽땅 99으로 치환하라 입니다
그러니 당연히 6712, 6733 등은 ==> 99 로 됩니다
$su = str_replace("6733","6799", $str );
----------------------
위 정규식은 패턴의 문자열을 99로 바꾼다 입니다
즉 6712, 6722,6700 등 67 및 뒤의 숫자2자리까지를 몽땅 99으로 치환하라 입니다
그러니 당연히 6712, 6733 등은 ==> 99 로 됩니다
�
카르스트
3년 전
균이님 도움 주셔서 감사합니다^^
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
본문예제에선 바로 33만 바꿈되지만 또 다른 상황이있거든요
단 67이란 고정값슨 분명히 다른예제상황에서도 존재하니
67은 포함시킨 값슨 변동안하지만 정규식엔 포함시켜 알고싶은거였습니다