正则表达式的命名空间不起作用

时间:2012-11-10 14:16:29

标签: c# .net

我正在翻新一些过去在.NET Framework 3.5上工作的旧代码,以使其在使用C#的.NET Framework 4上运行。

以下的Regex曾经在3.5版本中正常工作,但由于某些奇怪的原因不再起作用。

public static readonly Regex ChatColorRegex = new Regex("\\|c[A-Za-z0-9]{6,8}"),
                                 ChatLinkRegex = new Regex("\\|H.*?\\|h");

我在我的文件顶部添加了'using System.Text.RegularExpressions',但是出现了以下错误:'名称空间System.Text中不存在类型或命名空间RegularExpressions。

我已经开始搜索,并且读到你必须在Visual Studio中添加对System.Text.RegularExpressions的引用。但是,当我这样做时,我无法在我可以添加的References列表中找到System.Text.RegularExpressions。

我正在使用Visual Studio 2012。

有谁能告诉我我做错了什么,或者忘记阅读?

1 个答案:

答案 0 :(得分:10)

Regex类仍在System.Text.RegularExpression命名空间中。该类位于系统程序集中。

如果在解决方案资源管理器中检查项目引用,则应该看到对系统程序集的引用。检查该引用的属性,以查看用于系统程序集引用的.NET Framework版本。它应该与您在项目属性(“应用程序”选项卡)中为“目标框架”选择的.NET Framework版本匹配。

编辑:Regex类位于System.Text.RegularExpressions命名空间中,而不是System.Text。