정규식을 테스트 하는 여타의 사이트에서 https://regexr.com/ https://regex101.com/
Copy
[\\\]+$
이 정규식 코드를 넣으니 오류가 납니다.
왜 오류가 나는건지?
그리고 저 정규식은 어떤 결과물을 얻기 위한 정규식인지 궁금합니다.
|
답변 2개 / 댓글 7개
채택된 답변
+20 포인트
2020-03-24 (화) 14:04:14
\
\\ << 찾으실려면 [\\\\]+$
\\\ << 찾으실려면 [\\\\\\]+$
답변에 대한 댓글 6개
as12as
2020-03-24 (화) 14:07:05
2020-03-24 (화) 14:28:01
<?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);
as12as
2020-03-24 (화) 15:38:55
더 안 주셔도 됩니다.
이해 했습니다.
이해 하는데 시간이 좀 걸렸네요.
답변 감사합니다.
이해 했습니다.
이해 하는데 시간이 좀 걸렸네요.
답변 감사합니다.
2020-03-24 (화) 15:36:39
<?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);
2020-03-24 (화) 15:50:08
채택 보너스로 마지막 문자열 얻기
if ('\\' == substr( 'PHP is cooooool \(o_o)\\', -1)) echo 'PHP is cooooool!';
한글등 유니코드라면 mb_ substr() 함수
if ('\\' == substr( 'PHP is cooooool \(o_o)\\', -1)) echo 'PHP is cooooool!';
한글등 유니코드라면 mb_ substr() 함수
2020-03-24 (화) 14:42:09
경로 등에서 마지막 역슬레쉬로 끝나는걸 찾는것 같네요.
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
저리 쓰고 있는 소스가 있어 질문을 드린겁니다.