abc|def|ghi 에서 |로 구분되는 값인지 판별하는 정규식
본문
문자열 예시 : abc|def|ghi
에서 '|'로 구분하여 해당 값이 맞는지 판별하는 정규식을 어떻게 짜야할까요??
찾는값이 abc라면 abc|def|ghi 에서 해당 값이 있으므로 매칭되어야 합니다. (문자열에서 찾는문자열 앞에 '|' 없는조건)
찾는값이 def라면 abc|def|ghi 에서 해당 값이 있으므로 매칭되어야 합니다. (문자열에서 찾는문자열 앞뒤로 '|' 있는조건)
찾는값이 ghi라면 abc|def|ghi 에서 해당 값이 있으므로 매칭되어야 합니다. (문자열에서 찾는문자열 뒤에 '|' 없는조건)
찾는값이 de라면 abc|def|ghi 에서 해당 값이 없으므로 매칭되지 않아야 합니다. (php strpos로는 매칭이 되어서 정규식을 쓰려하는 이유입니다.)
답변 3
preg_match함수를 이용하면 될듯 합니다.
$tmp ="abc|def|ghi";
preg_match("/\bde\b/i", $tmp)) 이경우는 찾기 실패
preg_match("/\bdef\b/i", $tmp)) 이경우는 찾기 성공
$tmp="abc|def|ghi";
$tmp = "|".$tmp."|"; <--이렇게 만들어서 |abc| , |def|, |ghi|를 strpos로 찾으면 되는데요??
배열로 만드셔서 in_array()로 매칭여부 판단하는 방식도 있습니다.
$tmp="abc|def|ghi";
$tmp_arr = explode("|",$tmp);
if(in_array("ghi", $tmp_arr)) {
echo "on";
}else{
echo "off";
}