정규식 잘 아시는 분!

정규식 잘 아시는 분!

QA

정규식 잘 아시는 분!

본문

<font face="나눔바른고딕, NanumBarunGothic">

 

위의 태그에서 <font> 만 남기기 위해 face= 부분을 정규식으로 삭제하려고 합니다.

 

아래처럼 코딩을 했는데요, 잘 안 되네요 ㅜ

 

$wr_content = preg_replace('!face=\"(.*?)\"!is', '', $wr_content);

 

정규식 잘 아시는 분 좀 도와주시면 감사하겠습니다.

 

 

이 질문에 댓글 쓰기 :

답변 2


<?php
$wr_content = <<<HEREDOC
0<font face="나눔바른고딕, NanumBarunGothic">
1<font face="나눔바른고딕, 'Courier New' ">
2<font face=' '>xㄴㅇs  face="나눔바른고딕, 'Courier New' "
3<font face=" Menlo ">xㄴㅇs  face="나눔바른고딕, 'Courier New' "</font>
4<font   face=" "></font>
5<font     face="" class="aa"></font>
6<font face=''></font>
7<font class='bb' face=''></font>
8<font class=cc face=dd data-foo="bar"></font>
HEREDOC;
 
$wr_content = preg_replace('!(<font.*?)\s+face=.*?(\s+[^=>]+=[^=>]+)*>!is', '$1$2>', $wr_content);
echo $wr_content;
?>

와 잘 되네요. 존경합니다. 이런 거 어떻게 짜야 하나요.. ㅜ

혹시 아래와 같은 경우, 중간에 face 부분만 없애려면 어떻게 해야하는지도 궁금한데, 시간 되시면 답변 부탁드려도 될까요? 제가 시도해봤는데 어렵네요..

<font class="bb" face="나눔고딕" style="color:#fff">

다음과 같이 해 보시는건 어떨까요?


$wr_content = preg_replace('/face=\"(.*?)\"/is', '', $wr_content);

 


$wr_content = preg_replace('/<font[^>]*>/', '', $wr_content);



$wr_content = preg_replace('/<font[^>]*face="[^"]*"[^>]*>/', '', $wr_content);


<font face="나눔바른고딕, NanumBarunGothic">과 같은 문자열에서 face 속성이 대문자로 표기된 경우, 정규식이 일치하지 않을 수 있습니다. 이 경우, i 플래그를 삭제하여 대소문자를 구분하도록 변경하거나 <font 태그와 face 속성을 모두 대소문자를 구분하지 않도록 수정해야 합니다.

정규식의 s 플래그는 . 메타 문자가 줄 바꿈 문자를 포함하여 모든 문자와 일치하도록 설정합니다. 만약 <font> 태그가 여러 줄에 걸쳐 있거나 줄 바꿈 문자가 포함되어 있다면, s 플래그가 필요할 수 있습니다. 이 경우에는 s 플래그를 유지합니다.

정규식이 적용되는 텍스트가 $wr_content에 포함되어 있어야 합니다. 위의 부분들을 검토해보세요

답변을 작성하시기 전에 로그인 해주세요.
전체 46
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT