채택완료

mysql Regexp 정규식 축출 하려하는데 이건 어떻게해야해요?

제가잘몰라서요 ㅜㅜ

밑에 코드중에서 mysql Regexp 정규식 축출 하려하는데 이건 어떻게해야해요?

g5_write_test 라는 테이블에 wr_id=1 이 내용중이라고 가정하고요

 

wr_content 내용이고

본문 맨처음 시작부분에있는것들인데

밑에 코딩중에서 중간에

<img src="https://test.com/a.jpg" editor_component="image_link"/>만 남기고

나머지 앞<div><a> 뒤</a></div> 부분은 삭제하고싶습니다 

즉  앞부분

<div style="box solid #000; line-height:0; padding:0 !important;"><a href="https://test.com/a.jpg" data-lightbox="view-lightbox" target="_blank">

과 뒷부분  </a></div> 는 삭제하고싶습니다

 

Copy
<div style="box solid #000; line-height:0; padding:0 !important;"><a href="https://test.com/a.jpg" data-lightbox="view-lightbox" target="_blank"><img src="https://test.com/a.jpg" editor_component="image_link"/></a></div>
|

답변 1개 / 댓글 2개

채택된 답변
+20 포인트

Copy
<?php
$a='<div style="box solid #000; line-height:0; padding:0 !important;"><a href="https://test.com/a.jpg" data-lightbox="view-lightbox" target="_blank"><img src="https://test.com/a.jpg" editor_component="image_link"/></a></div>';

//방법1: 해당 부분만 추출하기(이미지태그가 하나라고 가정)
$pattern = "#<div.+<a.+data-lightbox=\"view-lightbox\".+(<img[^<]+)<\/a><\/div>#";
preg_match($pattern, $a, $match);
echo $match[1];

//방법2: 해당 부분을 제외한 나머지 삭제
$pattern2 = "#(<div.+)(<img[^<]+)(<\/a><\/div>)#";
$a = preg_replace($pattern2, "$2", $a);

echo $a;

?>

답변에 대한 댓글 2개

평정심님 답변은 정말 정말 감사해요^^
php로 하는방법도 배울수있어 정말 감사합니다..
그런데 mysql에서 하려고하는거였거든요 ㅜㅜ
하지만 php로도 알수있어서 정말 감사해요^^
mysql에서 정규식을 사용하는 방법도 있었나요? 저는 처음 듣는 소리네요 ㅎㅎ

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