정규식 PHP 코드
// If url matches regex
$regex = "/^(/upload/temporary/)[0-9]{4}_[0-9]{2}_[0-9]{2}_[A-Za-z0-9._ /-]+.[A-z]{2,4}$/";
if (preg_match($regex, $this->value)) {
$this->valid();
}
오류 메시지
Warning: preg_match() [<a href='function.preg-match'>function.preg-match</a>]: Unknown modifier 'p' in C:\Apache\www\profiletwist\lib\php\form\url.php on line 41
Call Stack
# Time Memory Function Location
1 0.0079 440016 {main}() ..\new.php:0
2 0.0964 667832 form->validate() ..\new.php:60
3 0.0968 668248 form_URL->validateUploadURL() ..\form.php:372
4 0.0969 668400 preg_match () ..\url.php:41
Variables in local scope (#3)
$regex =
string '/^(/upload/temporary/)[0-9]{4}_[0-9]{2}_[0-9]{2}_[A-Za-z0-9._ /-]+.[A-z]{2,4}$/' (length=79)
질문
나는이 "알 수없는 수정"오류에 대한 정규식을 수정하려면 어떻게 발생하지합니다 ?PHP 정규식 "알 수없는 수정 페이지"
"/upload/temporary/####_##_##_[A-z0-9 _-]+ "." [a-z]{3}
이 파일 이름 대상 :
궁극적으로, 나는 텍스트 입력이 일치하는지 확인합니다 정규식을하고 싶습니다. 시작 부분은 변경되지 않고 마지막 부분은 임의의 해시 다음에 임의 확장자가 올 수 있습니다. 추가 처리는 정규 표현식 후에 수행되지만 이것은 첫 번째 테스트입니다.
감사합니다. 당신은 예를 /
에 대한 구분 기호를 사용하는 경우 정규식 엔진은 패턴의 끝이라고 생각 otherwhise
그리고 [100 개 중복 (어쩌면있다 http://stackoverflow.com/search?page=3&tab=newest&q=%5bphp%5d%20%5bregex % 5d % 20is % 3aquestion % 20closed % 3ano % 20unknown % 20modifier). 기본적으로 다른 구분 기호를 사용하거나 (가장 좋은 방법은) [**'preg_quote()'**] (http://php.net/preg-quote)를 사용하십시오. – HamZa
@HamZa 정규 표현식을 실제로 쓰고 싶을 때 (그리고 방대한 양의 문자 그대로의 텍스트와 일치하는 것이 아니라) 어떻게 가장 좋은 방법입니까? 다른 구분 기호를 선택하는 것이 가장 좋습니다. –
@ProfileTwist, 아무도 대답에 포함시키지 않았으므로 공식 [PHP의 구분 기호에 대한 참조] (http://www.php.net/manual/en/regexp.reference.delimiters.php)를 참조하십시오. –