Регулярное выражение для извлечения [flv: example.flv 465 301] из строки - PullRequest
0 голосов
/ 12 марта 2009
$content = preg_match('/[flv[^/]]+:(.*?)[^/]]*/]','', $content);

Может кто-нибудь дать мне регулярное выражение для извлечения [flv: example.flv 465 301] из строки. Также я хотел бы поместить example.flv во второй элемент массива, а размеры - в третий элемент. Я попробовал вышеупомянутое регулярное выражение, и он с треском провалился. Любая помощь приветствуется. Спасибо

Ответы [ 2 ]

3 голосов
/ 12 марта 2009

Вам нужно экранировать буквальные квадратные скобки, иначе они будут рассматриваться как класс символов. Кроме того, я не уверен, что вы делаете со всеми [^/], так как ваш пример не содержит /.

/\[flv:(.*?) (\d+ \d+)\]/

или выделить размеры:

/\[flv:(.*?) (\d+) (\d+)\]/
1 голос
/ 12 марта 2009

Когда я понял это правильно, у вас есть 4 части в вашей строке:

  • FLV: '
  • имя файла => [^ \ h] +
  • целое число => [0-9] +
  • integer => [0-9] +

Это будет собирать что-то вроде

'/flv:[^\h]+\h+[0-9]+\h+[0-9]+/'

Тогда вам нужно обернуть эти вещи в парантезы, и все готово:

preg_match('/flv:([^\h]+)\h+([0-9]+)\h+([0-9]+)/', $string, $matches);
$file = $matches[1];
$width = $matches[2];
$height = $matches[3];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...