정규식을 테스트 하는 여타의 사이트에서 https://regexr.com/ https://regex101.com/
Copy
[\\\]+$
이 정규식 코드를 넣으니 오류가 납니다.
왜 오류가 나는건지?
그리고 저 정규식은 어떤 결과물을 얻기 위한 정규식인지 궁금합니다.
|
답변 2개 / 댓글 7개
채택된 답변
+20 포인트
\
\\ << 찾으실려면 [\\\\]+$
\\\ << 찾으실려면 [\\\\\\]+$
답변에 대한 댓글 6개
<?php
$subject = 'PHP is cooooool \\\\(o_o)/ /(o_o)/';
echo "$subject <br>";
if (preg_match_all('[\\]', $subject, $matches)) {
echo "해당 문자열에서 '\'을 발견했습니다.<br>";
} else if (preg_match_all('[\\\]', $subject, $matches)) {
echo "해당 문자열에서 '\'을 발견했습니다.<br>";
} else {
echo "해당 문자열에서 '\'을 발견하지 못했습니다.<br>";
}
var_dump($matches);
$subject = 'PHP is cooooool \\\\(o_o)/ /(o_o)/';
echo "$subject <br>";
if (preg_match_all('[\\]', $subject, $matches)) {
echo "해당 문자열에서 '\'을 발견했습니다.<br>";
} else if (preg_match_all('[\\\]', $subject, $matches)) {
echo "해당 문자열에서 '\'을 발견했습니다.<br>";
} else {
echo "해당 문자열에서 '\'을 발견하지 못했습니다.<br>";
}
var_dump($matches);
<?php
$subject = 'PHP is cooooool \\\\(o_o)/ /(o_o)\\';
echo "$subject <br>";
// php에서도 \를 이스케이핑문자로 사용하기때문에 정규식에서 \를 인식못함(전달하기전 이스케이핑되서 '\'문자만 정규식으로 넘어감)
if (preg_match_all('/[\\]+$/', $subject, $matches)) {
echo "1. 해당 문자열에서 '\'을 발견했습니다.<br>";
// 정규식에서도 \를 인식하게 하기위해서 한번더 추가('//' 넘겨받은 값을 또 이스케이핑함)
} else if (preg_match_all('/[\\\]+$/', $subject, $matches)) {
echo "2. 해당 문자열에서 '\'을 발견했습니다.<br>";
} else {
echo "해당 문자열에서 '\'을 발견하지 못했습니다.<br>";
}
var_dump($matches);
$subject = 'PHP is cooooool \\\\(o_o)/ /(o_o)\\';
echo "$subject <br>";
// php에서도 \를 이스케이핑문자로 사용하기때문에 정규식에서 \를 인식못함(전달하기전 이스케이핑되서 '\'문자만 정규식으로 넘어감)
if (preg_match_all('/[\\]+$/', $subject, $matches)) {
echo "1. 해당 문자열에서 '\'을 발견했습니다.<br>";
// 정규식에서도 \를 인식하게 하기위해서 한번더 추가('//' 넘겨받은 값을 또 이스케이핑함)
} else if (preg_match_all('/[\\\]+$/', $subject, $matches)) {
echo "2. 해당 문자열에서 '\'을 발견했습니다.<br>";
} else {
echo "해당 문자열에서 '\'을 발견하지 못했습니다.<br>";
}
var_dump($matches);
답변을 작성하려면 로그인이 필요합니다.
저리 쓰고 있는 소스가 있어 질문을 드린겁니다.