Это мое регулярное выражение:
/^\[y\](.*?)\[\/y\]/
Это моя тема:
YouTube здесь [y] 2GJSVlIGmQI [/ y]
, но preg_match() не соответствует ничему из моей темы.
preg_match()
А также есть ли лучшее решение для захвата кода внутри [y] [/y]?
[y] [/y]
Спасибо!
Вам нужно удалить ^ в начале, например:
^
/\[y\](.*?)\[\/y\]/
То, что делает ^, соответствует этому выражению , только если оно находится в начале строки.Удаление означает, что выражение будет соответствовать шаблону в любом месте строки.
Вы должны удалить ^ char из своего регулярного выражения. ^ char соответствует началу строки.
$str = 'youtube is here [y]2GJSVlIGmQI[/y]'; preg_match('/\[y\](.*?)\[\/y\]/', $str, $arr); // 2GJSVlIGmQI echo $arr[1];
Используйте это: /\[y\](.*?)\[\/y\]/