0

我正在尝试进行正则表达式替换,但它似乎不起作用,但是当使用相同的正则表达式检查与 Regex.Match().Value 的匹配时,我发现它与我希望它匹配的匹配。我对这里发生的事情感到困惑。我正在尝试去除很长的字符串的一部分。

Parallel.ForEach(resultList, s =>
            {
            s = Regex.Replace(s, "description:.*\\.,", string.Empty);
            s = Regex.Replace(s, "icon:.*\\.png,", string.Empty);
            s = Regex.Replace(s, "medium:.*\\.png,", string.Empty);
            s = Regex.Replace(s, "large:.*\\.png,", string.Empty);
            s = Regex.Replace(s, "glasswareId:[ ][0-9],", string.Empty);

            s.Trim();
            }
        );

结果列表是一个List<string>

这是我试图匹配并替换的字符串

目前我正在尝试删除描述、图标和 glasswareId。这是我从 Web 服务器返回的字符串。

[编辑:字符串编辑为包含更少] 这是一个不起作用的示例字符串,粗体显示我要删除的内容

名称:蓝月亮复古金发女郎,描述:我们永远不知道接下来会激发我们的酿酒师 Keith Villa 的灵感。对于我们的限量版 Vintage Blonde,它恰好是来自加利福尼亚的葡萄和 27 年下班后的爱好。rnrnKeith 对酿造啤酒有着明显的热情。那不用说了。但他对酿酒也有着鲜为人知的热情。1995 年,当他正在压榨葡萄并回想起他在加利福尼亚和法国葡萄酒之乡的旅行时,将啤酒与葡萄酒混合的想法突然出现在他的脑海中。出于好奇,他不得不试一试。rnrn他首先使用霞多丽葡萄汁来赋予啤酒清脆、清淡的品质,非常像一杯霞多丽。然后,他使用白小麦作为唯一的谷物,创造出其他麦芽无法达到的干净、光滑的收尾。在地窖陈酿几个月后,他品尝了他的最新作品。清澈和清爽的口感让他惊喜不已。rnrn 2006 年,随着葡萄酒和精酿啤酒越来越受饮酒者欢迎,他认为现在是把它带回来的好时机。经过几年的节日和特别活动,它开始获得追随者。然后在 2010 年,它恰好从 Great American Beer Festivalu00ae 中获得了一枚金牌。知道这么好的啤酒应该被分享,我们在 2011 年将它作为 Vintage Blonde Aleu2122 分发。所以现在,六年后,Vintage Blonde Ale 在全国范围内发布,供所有人享用。经过几年的节日和特别活动,它开始获得追随者。然后在 2010 年,它恰好从 Great American Beer Festivalu00ae 中获得了一枚金牌。知道这么好的啤酒应该被分享,我们在 2011 年将它作为 Vintage Blonde Aleu2122 分发。所以现在,六年后,Vintage Blonde Ale 在全国范围内发布,供所有人享用。经过几年的节日和特别活动,它开始获得追随者。然后在 2010 年,它恰好从 Great American Beer Festivalu00ae 中获得了一枚金牌。知道这么好的啤酒应该被分享,我们在 2011 年将它作为 Vintage Blonde Aleu2122 分发。所以现在,六年后,Vintage Blonde Ale 在全国范围内发布,供所有人享用。abv:8.5,ibu:2,glasswareId:8,

4

1 回答 1

1

每次s在 foreach 中进行更改时,您只是更改了局部变量s指向的内容,而不是列表本身中的字符串。
您可以创建一个新列表(在循环外声明的列表)并附加到它或通过索引或以其他方式修改原始列表。
此外,调用Trim()根本无效,因为您需要将新创建的字符串分配给某物(Trim()不修改原始字符串,实际上字符串是不可变的)。

于 2013-05-26T05:43:45.767 回答