문제

문자열이 파일 이름 (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:]]+)*$")
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top