我有以下可能的字符串:
01/08/2019
01/08/2019 Season 2019.
Season 4. Episode 49 of 134.
Panic Run Season 2. Episode 2 of 12.
我想使用单个正则表达式将其分为几类
例如最后一个字符串应创建3个匹配的组
group1: Panic Run
group2: Season 2.
group3: Episode 2 of 12.
我可以使用以下正则表达式
(.+?)(Season.+?\.)(?:.+?)(Episode.+?\.)
但是在没有Episode或Season关键字的那一分钟内失败
如果我放?最后(。+?)(Season。+ ?.)(?:。+?)(Episode。+ ?.)? 如果没有,则覆盖最后一组,但是如果没有Season,则整个表达式都会失败
如果字符串不是从Season开始的,我想捕获组1中的所有内容。 如果存在Season,则从Season开始直到捕获。归入组1或2 如果情节存在,则从情节开始捕获到。进入第2或第3组
答案 0 :(得分:0)
我猜您可能想设计一个表达式,有点类似于:
(?i)^(\d+\/\d+\/\d+)?(.*?)(\bSeason\s+\d+)?\.?\s*(Episode.+\d)?\.?$
虽然不确定。
该表达式在regex101.com的右上角进行了解释,如果您想探索/简化/修改它,在this link中,您可以观察到它如何与某些示例输入匹配,如果你喜欢。