정규 표현식을 사용하여 텍스트에서 YouTube 동영상 ID 찾기
목표는 모든 YouTube 동영상 URL을 식별하고 텍스트에서 해당 ID를 검색하는 것입니다. 필드. 정규 표현식은 이 작업을 수행하기 위한 강력한 도구를 제공합니다.
YouTube URL 형식 이해
YouTube URL은 다음과 같은 다양한 형식으로 제공됩니다.
YouTube 동영상 ID 정규식 추출
다음은 이러한 모든 형식과 일치하고 YouTube 동영상 ID를 캡처하는 정규식입니다.
https?://(?:[0-9A-Z-]+\.)?(?:youtu\.be/|youtube(?:-nocookie)?\.com\S*?[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|</a>))[?=&+%\w.-]*
정규식 설명
예제 코드
PHP에서는 다음 기능을 사용하여 비디오 URL을 링크로 바꿀 수 있습니다.
function linkifyYouTubeURLs($text) { $text = preg_replace('~(?#!js YouTubeId Rev:20160125_1800) # Match non-linked youtube URL in the wild. (Rev:20130823) https?:// # Required scheme. Either http or https. (?:[0-9A-Z-]+\.)? # Optional subdomain. (?: # Group host alternatives. youtu\.be/ # Either youtu.be, | youtube # or youtube.com or (?:-nocookie)? # youtube-nocookie.com \.com # followed by \S*? # Allow anything up to VIDEO_ID, [^\w\s-] # but char before ID is non-ID char. ) # End host alternatives. ([\w-]{11}) # : VIDEO_ID is exactly 11 chars. (?=[^\w-]|$) # Assert next char is non-ID or EOS. (?! # Assert URL is not pre-linked. [?=&+%\w.-]* # Allow URL (query) remainder. (?: # Group pre-linked alternatives. [\'"][^<>]*> # Either inside a start tag, | </a> # or inside <a> element text contents. ) # End recognized pre-linked alts. ) # End negative lookahead assertion. [?=&+%\w.-]* # Consume any URL (query) remainder. ~ix', '<a href="http://www.youtube.com/watch?v=">YouTube link: </a>', $text); return $text; }
JavaScript에서 다음 코드는 유사한 작업을 수행합니다. 작업:
function linkifyYouTubeURLs(text) { var re = /https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube(?:-nocookie)?\.com\S*?[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|</a>))[?=&+%\w.-]*/ig; return text.replace(re, '<a href="http://www.youtube.com/watch?v=">YouTube link: </a>'); }
위 내용은 정규식을 사용하여 텍스트에서 YouTube 동영상 ID를 어떻게 추출할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!