我有这样的正则表达式用于获取YouTube视频ID:的preg_match()未知的修饰词 '[' 帮助
(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+
我从那里得到它:Regex to parse youtube yid
的问题是,我得到preg_match() Unknown modifier '['
警告。
我知道我必须附上正则表达式分隔符,但我不知道如何做到这一点。
任何帮助?
我有这样的正则表达式用于获取YouTube视频ID:的preg_match()未知的修饰词 '[' 帮助
(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+
我从那里得到它:Regex to parse youtube yid
的问题是,我得到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);
?>
注意,我使用#
作为分隔符这里只是因为上述正则表达式中包含正斜杠和逃避他们,使表达更加难以阅读。这清除了几个像素。
我需要PREG_OFFSET_CAPTURE,3? – Jonathan 2010-06-10 03:21:48
不,你没有,我修改了代码以反映你正在寻找的东西。 – randombits 2010-06-10 03:26:31
我正则表达式是以下:
[A-ZA-Z] {3} \ d {4} [A-ZA-Z] {4}
我把它如下:
if (!preg_match("[A-Za-z]{3}\d{4}[A-Za-z]{4}", trim($search_query))) { return false; }
但它给我回了以下警告:
一个PHP错误遇到
严重性:警告消息:的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";
}
所以我也把“/”前的那两个第二我RgeEx模式后如下,问题解决了:
if (!preg_match("/[A-Za-z]{3}\d{4}[A-Za-z]{4}/", trim($search_query))) { return false; }
添加您的正则表达式 – 2010-06-10 03:13:16
内斜杠分隔符你划定的正则表达式在你的代码?即'/ expression /' – Amber 2010-06-10 03:13:38