我使用此正则表达式获取YouTube视频ID:
(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+
问题是我得到preg_match() Unknown modifier '['警告。
preg_match() Unknown modifier '['
我知道我必须将正则表达式定界符括起来,但是我不知道该怎么做。
有什么帮助吗?
请尝试以下操作:
<?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); ?>
请注意,我#之所以在这里用作分隔符,是因为上面的正则表达式包含正斜杠,而转义它们会使表达式更难以阅读。这仅清理了几个像素。
#