2012-08-30 8 views
0

내가이 pregmatch는 어떻게 작동합니까?

preg_match('/\[youtube ([[:print:]]+)\]/', $content, $matches) 

$content는 *에 http로 링크 될 수 있습니다 몇 가지 코드를 찾고 있어요 : //www.youtube.com/watch V는 some_video는

는 는 그건 내가 볼 수

* = youtube 비디오를 필터링하지만, 어떻게하는지는 알지 못합니다. 더 구체적으로 말하자면, [:print:]의 역할은 무엇입니까?

+0

문자 클래스가 어떻게 작동하는지 보려면 ['re_format (7)'] (http://www.freebsd.org/cgi/man.cgi?query=re_format) 맨 페이지를 읽었습니까? – ghoti

+0

솔직히 이것이 캐릭터 수업에 대해 배우는 첫 번째 것입니다. 링크를 가져 주셔서 감사합니다. – KalenGi

답변

0

당신의 답은 여기에 있습니다 : http://www.php.net/manual/en/function.preg-match-all.php#81559

"[: 인쇄 :] - 공간을 포함하는 인쇄 문자,"

+0

그건 아주 간단합니다! 나는 전에 캐릭터 수업을 접하지 않았다. 그리고 preg_match는 유효한 링크를 포착하지 못하기 때문에 작동하지 않습니다. – KalenGi

+0

아마도 youtube 이후 공간 때문에 ... – frak

1

여기 상자 도면에서 실험입니다.

/\[youtube ([[:print:]]+)\]/ 
│ │  │ │   │ 
│ │  │ │   └─ close the matched string 
│ │  │ └──────────── start the character class 
│ │  └────────────── open the matched string 
│ └─────────────────────── literal square bracket 
└───────────────────────── start the regexp 

중요한 비트는 괄호 안에있는 부분입니다. 변수로 재사용 할 수 있도록 프로그래밍 언어와 일치하므로 대체 URL을 구성 할 수 있습니다.

관련 문제