T

정규식 질문입니다.

아무리해도 어려운 정규식..
<option value=''>색상선택</option>
<option value='' style='color: #CCCCCC;'>-------------------</option>
<option value='2661;0;★★(블랙)'>★★(블랙)</option>
<option value='2662;0;★★(핑크) (품절)'>★★(핑크) (품절)</option>
<option value='2663;0;★★(화이트) (품절)'>★★(화이트) (품절)</option>

이렇게 되어있는것을

색상선택<br>
★★(블랙)<br>
★★(핑크) (품절)<br>
★★(화이트) (품절)<br>
처럼 출력하고자 합니다.

preg_match("/<option value='(.*)?>(.*)?<\/option>/", $option, $match);
$option = str_replace($match[0], $match[2], $option);

처럼했는데... 소스자체가 틀렸는지 원하는 모양으로 안나오네요 ㅠ.ㅠ

무튼 졍규식 하나만 부탁 드립니다.(설명도 해주시면 무한 감사하겠습니다.)
|

댓글 5개

아 정규식은 너무 어렵지만,

if(preg_match("/<option[^>]* value=['|\"]([^\\1\040>]*)\\1[^>]*>(.+)<\/option>/is", $option, $match)) $str = $match[2]."<br />";

이정두가 아닐까유 ㅋㅋㅋㅋ
테스트는 안해봤습니다 ㅋㅋㅋ
답변감사합니다.
제가 했던것과 마찬가지로 결과값은
블랙</option><option value='12619;0;브라운'>브라운</option><option value='12622;0;옐로우'>옐로우</option><option value='12626;0;핑크'>핑크<br />
이 뜨네요 ㅠㅠ
$option=preg_replace("|<option value='' [^<].*---</option>|",'',$option);
preg_match_all("|<option value=[^>]+>(.*)</option>|iU", $option, $match);

print_r($match[1]);
아래와 같이 됩니다
Array
(
[0] => 색상선택
[1] => ★★(블랙)
[2] => ★★(핑크) (품절)
[3] => ★★(화이트) (품절)
)
---------------
$str=implode("<br>", $match[1]);
echo $str;
아래와 같이 됩니다

색상선택<br>★★(블랙)<br>★★(핑크) (품절)<br>★★(화이트) (품절)
감사합니다.!
잘되네요!!
역시 고수는 무엇인가 다르네요!!
정말 감사합니다!
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
14년 전 조회 1,627
14년 전 조회 746
14년 전 조회 1,046
14년 전 조회 896
14년 전 조회 1,837
14년 전 조회 1,512
14년 전 조회 995
14년 전 조회 1,677
14년 전 조회 1,526
14년 전 조회 1,605
14년 전 조회 2,245
14년 전 조회 817
14년 전 조회 1,855
14년 전 조회 1,552
14년 전 조회 1,043
14년 전 조회 814
14년 전 조회 1,172
14년 전 조회 1,965
14년 전 조회 779
14년 전 조회 2,283
🐛 버그신고