【发布时间】:2018-08-25 17:28:54
【问题描述】:
我想检查输入字符串是否遵循某种模式,以及它是否确实从中提取信息。
我的模式是这样的Episode 000 (Season 00)。 00 是范围从 0 到 9 的数字。现在我想检查这个输入Episode 094 (Season 02)是否匹配这个模式,因为它应该提取这两个数字,所以我最终得到两个整数变量94和2:
string latestFile = "Episode 094 (Season 02)";
if (!Regex.IsMatch(latestFile, @"^(Episode)\s[0-9][0-9][0-9]\s\((Season)\s[0-9][0-9]\)$"))
return
int Episode = Int32.Parse(Regex.Match(latestFile, @"\d+").Value);
int Season = Int32.Parse(Regex.Match(latestFile, @"\d+").Value);
我检查整个字符串是否与模式匹配的第一部分有效,但我认为它可以改进。对于第二部分,我实际上提取了我被卡住的数字,而我在上面发布的内容显然不起作用,因为它从字符串中获取所有数字。因此,如果你们中的任何人能帮我弄清楚如何只提取Episode 之后的三个数字字符和Season 之后的两个字符,那就太好了。
【问题讨论】:
-
如果我告诉你有带有more than 10,000 episodes? 的节目会怎样 在该列表中还有一个节目超过 100 季(TV Slagalica,一个塞尔维亚游戏节目,截至发帖时有 104 季)