2
任何人可以幫助我解決這個問題:正則表達式切片文件名包含字符串和數值
我得到
$filename= "index 198.php";
我用這個和失敗的
preg_match(" [a-zA-Z0-9]", $filename, $output);
我有什麼樣的正則表達式模式使用這樣的$輸出陣列將包括一個號碼只有值。
任何人可以幫助我解決這個問題:正則表達式切片文件名包含字符串和數值
我得到
$filename= "index 198.php";
我用這個和失敗的
preg_match(" [a-zA-Z0-9]", $filename, $output);
我有什麼樣的正則表達式模式使用這樣的$輸出陣列將包括一個號碼只有值。
如果要提取只是從文件名,你可以做數量:
$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_家庭的 函數期望第一個參數 這是正則表達式在一對 分隔符。您也可以使用 也使用'/(\d+)/'
。一個數字只對嗎?
$filename= "index 198.php";
preg_match_all("/(\d+)/",$filename,$matches);
print_r($matches[1]);
獲得更多的數字,使用preg_match_all()
我們怎樣讀 '#(\ d +)#'? – justjoe 2010-03-27 09:07:28
@justjoe:更新了我的答案。 – codaddict 2010-03-27 09:12:10
謝謝,這非常有幫助。我會更多地學習這個話題。 – justjoe 2010-03-27 09:14:30