我想從一個名字的.torrent得到一定的字符串,但我只得到這個從它:從字符串打印出一定的文字與的preg_match
array
0 => string 'e' (length=1)
我做了什麼錯?這是preg_match
我用:提前
preg_match('/[S(0-9)E(0-9)]/i', 'True.Blood.S04E12.SWESUB.PDTV.XviD-DSMEDiA', $matches);
感謝。
我想從一個名字的.torrent得到一定的字符串,但我只得到這個從它:從字符串打印出一定的文字與的preg_match
array
0 => string 'e' (length=1)
我做了什麼錯?這是preg_match
我用:提前
preg_match('/[S(0-9)E(0-9)]/i', 'True.Blood.S04E12.SWESUB.PDTV.XviD-DSMEDiA', $matches);
感謝。
刪除方括號並將它們放在數字的周圍,然後在它們後面加上+
(意思是1或更多)。這樣,你得到整個S ##ē##串,加上單獨的數字:
preg_match('/S([0-9]+)E([0-9]+)/i', 'True.Blood.S04E12.SWESUB.PDTV.XviD-DSMEDiA', $matches);
print_r($matches);
/* output:
Array
(
[0] => S04E12
[1] => 04
[2] => 12
)
*/
你也可以用\d
更換[0-9]
我會建議使用:
preg_match('/S[0-9]{1,2}E[0-9]{1,2}/i', 'True.Blood.S04E12.SWESUB.PDTV.XviD-DSMEDiA', $matches);
它得到out:
array(1) { [0]=> string(6) "S04E12" }
以下正則表達式會返回適當的字符串。
/* Pattern: /\d{2}E\d{2}/ */
preg_match_all('/\d{2}E \d{2}/', '{{your data}}', $arr, PREG_PATTERN_ORDER);
/*Result*/
Array
(
[0] => Array
(
[0] => 04E12
)
)
非常感謝!這工作就像一個魅力:)我有點新正則表達式。 – Erik 2012-02-01 21:35:01