使用正则表达式拆分字符串

本文关键字:字符串 拆分 正则表达式 | 更新日期: 2023-09-27 17:57:10

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

"#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)

谁能帮我解决这个问题?

使用正则表达式拆分字符串

在不使用正则表达式的情况下,可以通过以下方式解决此问题(如注释中所述):

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