此问题已在此处有答案:
Regex for matching season and episode(5个答案)
11个月前关闭。
这篇文章是编辑并提交审查10天前.
我想创建一个正则表达式,它可以匹配电视节目文件格式中所有可能的剧集编号格式。
相关的帖子here,仅匹配以下格式:S1E1,S11E1,S11E11,S11E11.
我想匹配以下格式:episode01,episode01,episode1,episode 1,e01,e1,e01-02,e01-02,e01e02,e01-e02,e111,e001002,e1-e2,e001-e002.
我目前有这个正则表达式,它匹配大多数但不是所有的例子列表。
(?:(?<=e)|(?<=episode)|(?<=episode[\.\s]))(\d{1,2})|((?<=-)\d{1,2})
它不匹配的是当有两个情节直接在另一个e0102
应该匹配01
和02
之后。
您可以找到带有测试用例here的正则表达式示例
1条答案
按热度按时间8i9zcol21#
根据你的评论,我做了以下假设:
因此,请尝试以下操作:
Here是一个在线演示。您会注意到我添加了更多的示例来说明上述假设。
e(?:pisode)?\s*
-将'e'或'episode'与0+尾随空格字符匹配;(\d{1,3}(?!\d)|\d\d\d??)
-第一个捕获组,如果后面没有任何其他数字或两位数字,则捕获1-3位数字;(?:-?e?(\d{1,3}))?
-一个可选的非捕获组,带有一个嵌套的第二捕获组,用于查找可选的连字符和带有尾随数字(1-3)的文字'e';(?!\d)
-没有留下尾随数字。