Распечатать определенный текст из строки с помощью preg_match - PullRequest
1 голос
/ 02 февраля 2012

Я хочу получить определенную строку из имени .torrent, но я получаю только это:

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);

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 02 февраля 2012

Я бы порекомендовал использовать:

preg_match('/S[0-9]{1,2}E[0-9]{1,2}/i', 'True.Blood.S04E12.SWESUB.PDTV.XviD-DSMEDiA', $matches);

Получается это:

array(1) { [0]=> string(6) "S04E12" } 
0 голосов
/ 02 февраля 2012

Следующее регулярное выражение вернет соответствующую строку.

/* 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
        )

)
0 голосов
/ 02 февраля 2012

Снимите квадратные скобки, поместите их вокруг цифр и добавьте + (что означает 1 или более) после них. Таким образом, вы получите всю строку S ## E ## плюс цифры отдельно:

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
)
*/

Вы также можете заменить [0-9] на \d

...