我正在翻新一些曾经在 .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");
我在文件顶部添加了“使用 System.Text.RegularExpressions”,但出现以下错误:“ namespace System.Text 中不存在类型或 namespace RegularExpressions。
我用谷歌搜索了一下,了解到您必须在 Visual Studio 中添加对 System.Text.RegularExpressions 的引用。但是,当我这样做时,我无法在我可以添加的引用列表中找到 System.Text.RegularExpressions。
我正在使用 Visual Studio 2012。
谁能告诉我我做错了什么,或者忘记阅读?
最佳答案
Regex 类仍在 System.Text.RegularExpression 命名空间中。该类位于系统程序集中。
如果您在解决方案资源管理器中检查项目引用,您应该会看到对系统程序集的引用。检查该引用的属性以查看哪个 .NET Framework 版本被用于系统程序集引用。它应该与您在项目属性(“应用程序”选项卡)中为“目标框架”选择的 .NET Framework 版本相匹配。
编辑:Regex 类位于 System.Text.RegularExpressions 命名空间中,而不是 System.Text 中。
关于c# - 正则表达式的命名空间不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322798/