Dosya dilim Regex string ve sayısal içerir

2 Cevap php

Biri bana bu çözmeye yardımcı olabilir:

i got

$filename= "index 198.php";

ben bu kullanımı ve başarısız

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

ben çok kullanmak zorunda regex desen ne tür $output array oluşan bir number only değeri olacaktır.

2 Cevap

Eğer dosya adı sadece sayı ayıklamak isterseniz yapabilirsiniz:

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

Bu dosya adı rakamlardan sadece bir grup olduğunu varsayar. Gibi basamak birden fazla grup varsa durumda index 123 abc 456.php sadece ilk grup uyumlu olacaktır.

Not:

Kullanılan regex olduğunu: (\d+)

  • \d : short cut for [0-9]. A single digit
  • \d+ : one or more digits, basically a number
  • () : to group and remember the match. It will be remembered in $matches arrray.
  • ## : delimiters. preg_ family of functions expect the 1st argument which is the regex to be inside a pair of delimiter. You could have used '/(\d+)/' too.

tek doğru bir numara?

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

Daha numaralarını almak preg_match_all kullanmak için ()