정규식 질문하나 드립니다.

정규식 질문하나 드립니다.

QA

정규식 질문하나 드립니다.

답변 2

본문

정규식을 테스트 하는 여타의 사이트에서 https://regexr.com/ https://regex101.com/


[\\\]+$

이 정규식 코드를 넣으니 오류가 납니다.

왜 오류가 나는건지?

그리고 저 정규식은 어떤 결과물을 얻기 위한 정규식인지 궁금합니다.

이 질문에 댓글 쓰기 :

답변 2

\

\\ << 찾으실려면 [\\\\]+$

\\\ << 찾으실려면 [\\\\\\]+$

<?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);

<?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);

경로 등에서 마지막 역슬레쉬로 끝나는걸 찾는것 같네요.

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 123,683
© SIRSOFT
현재 페이지 제일 처음으로