채택완료

abc|def|ghi 에서 |로 구분되는 값인지 판별하는 정규식

2018-08-20 (월) 22:37:59 2,299

문자열 예시 : abc|def|ghi

에서 '|'로 구분하여 해당 값이 맞는지 판별하는 정규식을 어떻게 짜야할까요??

찾는값이 abc라면 abc|def|ghi 에서 해당 값이 있으므로 매칭되어야 합니다. (문자열에서 찾는문자열 앞에 '|' 없는조건)

찾는값이 def라면 abc|def|ghi 에서 해당 값이 있으므로 매칭되어야 합니다. (문자열에서 찾는문자열 앞뒤로 '|' 있는조건)

찾는값이 ghi라면 abc|def|ghi 에서 해당 값이 있으므로 매칭되어야 합니다. (문자열에서 찾는문자열 뒤에 '|' 없는조건)

찾는값이 de라면 abc|def|ghi 에서 해당 값이 없으므로 매칭되지 않아야 합니다. (php strpos로는 매칭이 되어서 정규식을 쓰려하는 이유입니다.)

|

답변 3개 / 댓글 1개

채택된 답변
+20 포인트
2018-08-20 (월) 23:40:18

preg_match함수를 이용하면 될듯 합니다.

$tmp ="abc|def|ghi";
preg_match("/\bde\b/i", $tmp)) 이경우는 찾기 실패

preg_match("/\bdef\b/i", $tmp)) 이경우는 찾기 성공

배열로 만드셔서 in_array()로 매칭여부 판단하는 방식도 있습니다.

$tmp="abc|def|ghi";
$tmp_arr = explode("|",$tmp);

 if(in_array("ghi", $tmp_arr)) {
    echo "on";
}else{
    echo "off";
}

$tmp="abc|def|ghi";

$tmp = "|".$tmp."|"; <--이렇게 만들어서 |abc| , |def|, |ghi|를 strpos로 찾으면 되는데요??

답변에 대한 댓글 1개

님의 해결책이 가장 간단하네요 ^^

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