Regex для нарезки имени файла содержит строку и число - PullRequest
2 голосов
/ 27 марта 2010

Может кто-нибудь помочь мне решить эту проблему:

я получил

$filename= "index 198.php";

Я использую это и не удалось

preg_match(" [a-zA-Z0-9]", $filename, $output);

Какой тип регулярного выражения я должен использоватьтаким образом, $ выходной массив будет состоять из значения только число .

Ответы [ 2 ]

2 голосов
/ 27 марта 2010

Если вы хотите извлечь из имени файла только число, которое вы можете сделать:

$filename= "index 198.php";
if(preg_match('#(\d+)#',$filename,$matches))
    echo $matches[1]; // prints 198

Предполагается, что имя файла имеет только одну группу цифр. В случае если имеется более одной группы цифр, например index 123 abc 456.php, будет сопоставлена ​​только первая группа.

Примечание:

Используемое регулярное выражение: (\d+)

  • \d: сокращение для [0-9]. одна цифра
  • \d+: одна или несколько цифр, в основном номер
  • (): группировать и запоминать матч. Это будет помнить в $matches arrray.
  • ##: разделители. семья preg_ функции ожидают 1-го аргумента который является регулярным выражением, чтобы быть внутри пара разделителя. Вы могли бы иметь используется '/(\d+)/' тоже.
1 голос
/ 27 марта 2010

номер только верно ??

$filename= "index 198.php";
preg_match_all("/(\d+)/",$filename,$matches);
print_r($matches[1]);

, чтобы получить больше чисел, используйте preg_match_all ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...