유효한 파일 이름을 찾기위한 Regex
-
06-07-2019 - |
문제
문자열이 파일 이름 (Name Dot Ext)인지 확인하고 싶습니다.
파일 이름에는 포함 할 수 없습니다 / ? * : ; { } \
preg_match ()에서 사용할 수있는 regex 표현식을 제안 해 주시겠습니까?
해결책
여기에 간다 :
"[^/?*:;{}\\]+\\.[^/?*:;{}\\]+"
"이 캐릭터가 아닌 하나 이상의 캐릭터, 그 다음 캐릭터가 아닌 캐릭터가 아닌 캐릭터가 더 많지 않습니다."
(점이 실제로 필요하다고 확신하는 한 - 그렇지 않은 경우 간단합니다. "[^/?*:;{}\\]+"
다른 팁
$a = preg_match('=^[^/?*;:{}\\\\]+\.[^/?*;:{}\\\\]+$=', 'file.abc');
^ ... $ - begin and end of the string
[^ ... ] - matches NOT the listed chars.
REGEX는 (3 글자 연장의 경우)와 같은 것입니다.
^[^/?*:;{}\\]+\.[^/?*:;{}\\]{3}$
PHP는 백 슬래시가 탈출해야합니다 preg_match()
앞으로의 슬래시가 탈출해야하므로 :
$pattern = "/^[^\\/?*:;{}\\\\]+\\.[^\\/?*:;{}\\\\]{3}$/";
파일 이름과 같은 일치합니다 "hosts"
또는 ".htaccess"
,이 약간 수정 된 표현식을 사용하십시오.
^[^/?*:;{}\\]*\.?[^/?*:;{}\\]+$
golang 프로그램에서 Unix Filename을 확인하는 데 사용하는 Regex 아래 :
reg := regexp.MustCompile("^/[[:print:]]+(/[[:print:]]+)*$")
제휴하지 않습니다 StackOverflow