module AnimeTitleParser::Util
Defined in:
util/regexes.crutil/util.cr
Constant Summary
-
BRACKETS =
{ {'(', ')'}, {'[', ']'}, {'{', '}'}, {'「', '」'}, {'『', '』'}, {'【', '】'}, {'(', ')'} } -
CLOSING_BRACKETS =
{% if true %} { {{ BRACKETS.map(&.[](1)).splat }} } {% end %} -
COMBINED =
/(?:s(?<season>\d{1,3}))(?:e(?<episode>\d{1,4}))(?:(?:(?:v)|(?:ver))?\d{1})?(?:-)?/i -
DELIMITERS_BASE =
/_/ -
DELIMITERS_DOT =
/_|\./ -
EPISODE_NUMBER =
/^(?:(?:e)|(?:ep)|(?:episode))(?<episode>\d{1,4})(?:(?:(?:v)|(?:ver))?\d{1})?(?:-)?$/i -
GENERAL_NUMBER =
/^(?<tentative>\d{1,4})(?:(?:(?:v)|(?:ver))?\d{1})?(?:-)?$/i -
NUMBER_INFORMATION =
((((SEASON_NUMBER + EPISODE_NUMBER) + COMBINED) + SEASON_X_EPISODE) + GENERAL_NUMBER) + VERSION_ONLY -
OPENING_BRACKETS =
{% if true %} { {{ BRACKETS.map(&.first).splat }} } {% end %} -
SEASON_NUMBER =
/^(?:(?:s)|(?:se)|(?:season))(?<season>\d{1,3})(?:-)?$/i -
NOTE All of these are case insensitive
-
SEASON_X_EPISODE =
/^(?<season>\d{1,2})x(?<episode>\d{1,4})(?:(?:(?:v)|(?:ver))?\d{1})?(?:-)?$/i -
VERSION_ONLY =
/^v\d{1}(?:-)?$/i