使用正则表达式

时间:2015-06-19 11:20:42

标签: c# .net regex

我正在努力寻找如何实现这一目标。 以下是内容:

"#1 Single" (2006) {Window Shopping (#1.2)} UK:29 January 2006

"The Wright Stuff" (2000) {(#15.76)} Germany:25 April 2011

Fever (2014/I) Brazil:26 February 2015 (Cinequest Film Festival)

Fever (2014/II) USA:June 2014

以上是不同字符串的变体,我在List<string>中拥有所有这些字符串,而我只想要第一部分,例如The Wright Stuff和最后一部分Germany 25 April 2011。所以,如果我有一个Dictionary<int,List<string>>,它将如下所示:

new Dictionary<int, List<string>> {
    {
        1, new List<string>()
            {
                "The Wright Stuff",
                "Germany",
                "25 April 2011"
            }
        } 
    };

以上就是我想要的结果(不要担心词典的关键,它在我的实际应用中是一个GUID)。

但如果字符串末端有额外的位,如Fever (2014/I) Brazil:26 February 2015 (Cinequest Film Festival),那么我也希望添加(Cinequest Film Festival)

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

不使用RegEx,可以通过以下方式解决(如评论中所述):

var theListOfString = yourInputString.Split(new[] { "  ", ":" }, StringSplitOptions.RemoveEmptyEntries).Select(p => p.Trim()).ToList();
theListOfString[0] = theListOfString[0].Substring(0, theListOfString[0].IndexOf("(") - 1);