2010-06-10 4 views
1

나는 YouTube 동영상 ID를 얻기 위해이 정규식이 도움 :는 preg_match() 알 수없는 수정 '['

(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+ 

내가 거기에서 그것을 얻을 : Regex to parse youtube yid

문제는 내가 preg_match() Unknown modifier '[' 경고를입니다.

정규식 구분 기호를 묶어야한다는 것을 알고 있지만 어떻게해야할지 모르겠다.

어떤 도움이 필요합니까?

+3

은 정규식 –

+2

내 슬래시 구분 기호를 추가 코드에서 정규식을 구분 했습니까? 즉'/ expression /' – Amber

답변

5

는 다음을 시도해보십시오

<?php 
    $str = "http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I"; 
    $pattern = '#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+#'; 
    preg_match($pattern, $str, $matches); 
    print_r($matches); 
?> 

주, 나는 정규 표현식 위 슬래시가 포함되어 있기 때문에 단순히 여기에 구분 기호로 #를 사용하여 그들을 표현 더욱 어렵게 읽을 수 있습니다 탈출하고 있습니다. 이렇게하면 몇 픽셀 만 정리됩니다.

[A-ZA-Z] {3} \의 D {4} [A-ZA-Z {4}

및 I는 입력 :

+0

PREG_OFFSET_CAPTURE, 3이 필요합니까? – Jonathan

+0

아니, 당신이 찾고있는 것을 반영하도록 코드를 수정했습니다. – randombits

0

내 정규식 다음시켰다 다음과 같이

PHP는 :

if (!preg_match("[A-Za-z]{3}\d{4}[A-Za-z]{4}", trim($search_query))) { return false; } 

는하지만 다음과 같은 경고를 날 다시했다 경고 메시지 :는 preg_match() : 오류가

심각도를 발생했습니다 알 수없는 수정 '{' 파일 이름 : 모델/room_reservation_model.php 라인 수 : 61

그런 다음 나는 link를 다음에서 그 중 일부에서 발견 그들은이 "/" 내 정규식 패턴을 넣어 것을 다음과 같이

$name = test_input($_POST["name"]); 
if (!preg_match("/^[a-zA-Z ]*$/",$name)) { 
    $nameErr = "Only letters and white space allowed"; 
} 

그래서 나는 또한 사람들이 "/"전 (before)를 넣어 차 내 RgeEx 패턴 후 다음과 문제가 해결로 :

if (!preg_match("/[A-Za-z]{3}\d{4}[A-Za-z]{4}/", trim($search_query))) { return false; } 
관련 문제