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

php 정규식으로 문자+숫자조합 변경 문의드립니다 채택완료

동구밖 7년 전 조회 3,450

$a=barcodesdgnsdgsadg454322  ==> $a=barcodesdgnsdgsadg|454322  이렇게 바꾸고싶습니다  현재 앞에 문자 그리고 뒤에 숫자 이런식 되있는데  정해진건 앞에는 문자 뒤에는 숫자인데  문자 나 숫자 자릿수는 정해진게없고 랜덤이고요  보기좋게  하기위해  문자 끝 숫자시작 앞에 | 를 넣고싶은데  정규식으로 한다면 어떻게하면될까요?  정규식으로하는방법 알려주심 감사할게요  $a=barcodesdgnsdgsadg454322  ==> $a=barcodesdgnsdgsadg|454322  이렇게 바꾸고싶습니다  추가로 mysql 정규식 적용은 어떻게변경하면되는지 아신다면 좀 알려주심 감사할게요^^

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

답변 2개

채택된 답변
+20 포인트

</p>

<p>$a = "barcodesdgnsdgsadg454322";</p>

<p>$pattern = "/([a-zA-Z]+)([0-9]+)?/";</p>

<p>preg_match($pattern, $a, $match);</p>

<p>//print_r($match);</p>

<p>$b = $match[1]."|".$match[2];</p>

<p>

echo $a."\n
";</p>

<p>echo $b."\n
";</p>

<p>

 

 

mysql에서 위의 작업은 일반적으로 어려운 작업입니다.

mysql 8.0 에서 REGEX_REPLACE함수가 추가되었음으로 이를 사용하여 변환할수 있습니다.(마리아db는 10.x 버전에 이미 지원되고 있을수 있습니다.)

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

동구밖
7년 전
명량폐인님 답변도움 정말 감사합니다^^

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

7년 전

</p>

<p><?php

$a="barcodesdgnsdgsadg454322";</p>

<p>$pattern = "#([a-zA-Z]+)(\d+)#";</p>

<p>if(preg_match($pattern, $a)) {

    $a = preg_replace($pattern, '${1}|$2', $a);

}</p>

<p>echo $a;</p>

<p>?></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

동구밖
7년 전
평정심 답변도움 주셔 감사해요 평정심님 답변도 제가 해드려야하는데 체택이 이젠 1분밖에 안되서 좀 미안합니다 ^^;; 답변체택은 먼저 명량폐인님께서 답변을해주셔서 아무래도 먼저 답변해주신분께 체택드려야함을 많은 이해 양해구할게요 도움 다시한번 감사드리고요 편안한 밤되세요^^;; 감사합니다

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

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

로그인