mytube 애드온에서 youtube channel 링크 오류 개선을 위한 정규식 문의
CMS/프레임워크 | Rhymix 1.9 |
---|---|
개발 언어 | PHP 7.2 |
안녕하세요.
현재 mytube 애드온을 잘 사용하고 있습니다.
그런데 채널링크를 넣으니 게시판에 오류가 발생하여 유튜브 링크를 추출하는 정규식까지 문의를 드리게 되었습니다.
스샷은 오류 화면입니다.
유튜브 링크는 잘 나오는데, 채널링크까지 유튜브로 인식해서 오류가 나옵니다.
mytube 애드온에 있는 정규식은 아래와 같습니다.
//유튜브 url과 video id 추출하는 정규식
private static $youtube_id_pattern = '~(?:http|https|)(?::\/\/|)(?:www.|)?(?:music\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/ytscreeningroom\?v=|\/feeds\/api\/videos\/|\/user\S*[^\w\-\s]|\S*[^\w\-\s]))([\w\-]{11})[a-z0-9;:@#?&%=+\/\$_.-]*~i';
private static $youtube_pattern = '%(?:https?:\/\/)?(?:www\.)?(?:music\.)?(?:m\.)?(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/= ]{11})%i';
private static $youtube_id_pattern = '~(?:http|https|)(?::\/\/|)(?:www.|)?(?:music\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/ytscreeningroom\?v=|\/feeds\/api\/videos\/|\/user\S*[^\w\-\s]|\S*[^\w\-\s]))([\w\-]{11})[a-z0-9;:@#?&%=+\/\$_.-]*~i';
private static $youtube_pattern = '%(?:https?:\/\/)?(?:www\.)?(?:music\.)?(?:m\.)?(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/= ]{11})%i';
$youtube_id_pattern 에서 채널링크는 제외할 수 있는 방법이 어떻게 될까요?
정규식에서 channel 들어간 링크는 제외하는게 제일 빠를 것 같은데 헤딩하다가 포기하고 질문드립니다. ㅠ
김치찌개
Lv. 3
댓글 4
(?!\/channel) 말씀하시는 것 같네요
감사합니다. 의도대로 잘 되네요. ^^
이렇게 한 번 해보시겠어요?
음 그리고 두번째 정규식은 오류가 있네요. / 이건 \/ 이렇게 이스케이프 문자로 표시해야 합니다.
(?:https?:\/\/)?(?:www\.)?(?:music\.)?(?:m\.)?(?:youtube(?:-nocookie)?\.com\/([^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/= ]{11})
잘 되네요. 감사합니다. ^^