我想从电视剧的名字中提取剧集编号。
e.g。如果是“权力的游戏S06E01 ”,那么我应该得到01。
我正在尝试的是:
但是由于输入类型的变化,我可以得到不同的名称来检查:
依旧......
答案 0 :(得分:8)
赞美正则表达式的力量然后:
\b(?i)S\d+E(\d+)(?i-)\b
<小时/>
在PHP
中,这将是:
<?php
$data = <<<DATA
Blacklist S01E01
Blacklist s01e01 (small "e" and "s")
Blacklist S01E01.mkv
Se7en S01E01
DATA;
$regex = '~\b(?i)S\d+E(\d+)(?i-)\b~';
preg_match_all($regex, $data, $matches);
print_r($matches);
?>
<小时/>
更新:要在jQuery/JavaScript
中执行此操作,您需要更改内联修饰符:
\bS[\d.]+E(\d+)\b
请参阅a demo on regex101.com(并注意修饰符!)。
答案 1 :(得分:2)
试一试:
<?php
$movie = 'Game.Of.Thrones.S01E01.mkv';
$exp = "/([Ss][0-9]+)([Ee])([0-9]+)/";
preg_match_all($exp, $movie, $result);
echo "<pre>";
var_dump($result[count($result) - 1][0]);
echo "</pre>";
?>