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

정규식 잘 아시는 분! 채택완료

밀리지 2년 전 조회 1,938

 

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

 

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

 

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

 

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

 

 

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

답변 2개

채택된 답변
+20 포인트
2년 전

</p>

<p><?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;</p>

<p> </p>

<p>$wr_content = preg_replace('!(<font.*?)\s+face=.*?(\s+[^=>]+=[^=>]+)*>!is', '$1$2>', $wr_content);

echo $wr_content;

?></p>

<p>

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

답변에 대한 댓글 1개

밀리지
2년 전
와 잘 되네요. 존경합니다. 이런 거 어떻게 짜야 하나요.. ㅜ

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

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

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

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

</p>

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

<p>
 

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

답변에 대한 댓글 3개

밀리지
2년 전
감사합니다. 근데 안 되네요ㅜ
웹메이킹
2년 전
[code]
$wr_content = preg_replace('/<font[^>]*>/', '', $wr_content);
[/code]

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

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

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

정규식이 적용되는 텍스트가 $wr_content에 포함되어 있어야 합니다. 위의 부분들을 검토해보세요
밀리지
2년 전
감사합니다. 참고하겠습니다!

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

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

로그인

© 2025 SIRSOFT. All rights reserved.