C# 无法将我的正则表达式识别为字符串,即使我已尝试转义所有内容

标签 c# .net regex

我正在使用 C# 并希望在我的代码中使用以下正则表达式:

sDatabaseServer\s*=\s*"([^"]*)"

我把它放在我的代码中:

Regex databaseServer = new Regex(@"sDatabaseServer\s*=\s*"([^"]*)"", RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace);

我知道您必须转义字符串引号内的所有括号和引号,但出于某种原因,以下内容仍然不起作用:

工作版本:

Regex databaseServer = new Regex(@"sDatabaseServer\s*=\s*""([^""]*)""", RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace);

关于如何让 C# 将我的正则表达式视为字符串的任何想法?我知道我知道....简单的问题...抱歉我对 C# 还是有点业余...

已解决:谢谢大家!

最佳答案

当您避开括号时,您走得太远了一步。如果您希望它们成为正则表达式元字符(即捕获组),那么您一定不能转义它们。否则它们将匹配文字括号。

这可能就是您正在寻找的:

@"sDatabaseServer\s*=\s*""([^""]*)"""

关于C# 无法将我的正则表达式识别为字符串,即使我已尝试转义所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13315007/

相关文章:

c# - Paypal IPN 示例代码没有 ActionResult。如果没有 View ,我将如何提供 URL?

c# - 防止 RegEx 中的重复匹配

python - 如何为本文构造正则表达式

c# - EntityFramework Core Database.EnsureCreated 不创建数据库

c# - 绑定(bind)到 viewmodel 不工作 mvvm

.net - IDisposable 接口(interface)如何工作?

c# - 在 Windows XP 中快速检测固定 IDE 驱动器的移除

java - 如何检测字符串中的最后一个字符是否不是字母?

c# - 使用 ViewBag 时出现 RuntimeBinderException

c# - 如何在 Unity 中屏蔽自定义 UI 图形?