정규식 문의 드립니다.
본문
안녕하세요.
<item name="color">#000000</item>
을
<item name="color">#FFFFFF</item>
으로 변경하는 php 정규식은 어떻게 되는지 도움을 받고 싶습니다.
답변 2
다음과 같은 것을 원하시는지는 모르겠지만
참조하시죠.
$str = '<item name="color">#000000</item>';
$pattern = "#<item name=\"color\">(?P<color>[^<]+)<\/item>#i";
preg_match($pattern, $str, $matches);
if($matches['color'] == '#000000' || $matches['color'] == '#000'){
$s = array("#000000", "#000");
$r = array("#FFFFFF", "#FFF");
$str = str_replace($s, $r, $str);
echo $str;
}
정규식으로는
$content = '<item name="color">#000000</item>123<item name="color">#000000</item>';
$content = preg_replace('!<item name="color">#000000</item>!', '<item name="color">#FFFFFF</item>', $content);
이지만 별다른 규칙이 필요없다면 굳이 성능이 떨어지는 정규식을 사용할 필요는 없습니다.
$content = '<item name="color">#000000</item>123<item name="color">#000000</item>';
$content = str_replace('<item name="color">#000000</item>', '<item name="color">#FFFFFF</item>', $content);
답변을 작성하시기 전에 로그인 해주세요.