我想从电视连续剧的名称中提取剧集编号。
例如如果是“权力的游戏S06E01”,那么我应该得到01。
我正在尝试的是:
首先查看字符串是否包含类似“ S__E__”的内容(例如“黑名单S01E05”)
如果是,请查看“ E”或“ e”之后的内容,然后将其提取。
但是由于输入类型的不同,我可以使用不同的名称进行检查,例如:
黑名单S01E01
黑名单s01e01(小“ e”和“ s”)
黑名单S1E1
黑名单S01E01.mkv
Se7en S01E01
等等...
最佳答案
然后赞美正则表达式的功能:
\b(?i)S\d+E(\d+)(?i-)\b
请参见a demo on regex101.com。
在
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);
?>
并参见a demo on ideone.com。
更新:要在
jQuery/JavaScript
中执行此操作,您需要更改内联修饰符:\bS[\d.]+E(\d+)\b
请参见a demo on regex101.com(请注意修饰符!)。