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

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

QA

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

본문

정규식을 테스트 하는 여타의 사이트에서 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);

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

 

답변을 작성하시기 전에 로그인 해주세요.
전체 220
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT