채택완료

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

2018-06-17 (일) 12:17:53 3,654

$a=barcodesdgnsdgsadg454322  ==> $a=barcodesdgnsdgsadg|454322 
이렇게 바꾸고싶습니다 


현재 앞에 문자 그리고 뒤에 숫자 이런식 되있는데 
정해진건 앞에는 문자 뒤에는 숫자인데 

문자 나 숫자 자릿수는 정해진게없고 랜덤이고요 


보기좋게  하기위해 
문자 끝 숫자시작 앞에 | 를 넣고싶은데 

정규식으로 한다면 어떻게하면될까요? 
정규식으로하는방법 알려주심 감사할게요 


$a=barcodesdgnsdgsadg454322  ==> $a=barcodesdgnsdgsadg|454322 
이렇게 바꾸고싶습니다 

추가로 mysql 정규식 적용은 어떻게변경하면되는지 아신다면 좀 알려주심 감사할게요^^

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트
2018-06-17 (일) 15:36:38
Copy
$a = "barcodesdgnsdgsadg454322";

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

preg_match($pattern, $a, $match);

//print_r($match);

$b = $match[1]."|".$match[2];


echo $a."\n<br>";

echo $b."\n<br>";

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

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

답변에 대한 댓글 1개

명량폐인님 답변도움 정말 감사합니다^^
Copy
<?php
$a="barcodesdgnsdgsadg454322";

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

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

echo $a;

?>

답변에 대한 댓글 1개

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

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