T

정규식 질문입니다.

· 2012-01-10 (화) 16:16:16 · 1712 · 5
아무리해도 어려운 정규식..
<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 질문답변

66,531건

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

+
제목 글쓴이 날짜 조회
12-01-10 조회 3,282
12-01-10 조회 1,748
12-01-10 조회 1,821
12-01-10 조회 1,174
12-01-10 조회 1,731
12-01-10 조회 851
12-01-10 조회 1,192
12-01-10 조회 998
12-01-10 조회 1,971
12-01-10 조회 1,622
12-01-10 조회 1,092
12-01-10 조회 1,797
12-01-10 조회 1,622
12-01-10 조회 1,713
12-01-10 조회 2,374
12-01-10 조회 921
12-01-10 조회 1,973
12-01-10 조회 1,646
12-01-10 조회 1,152
12-01-10 조회 925