【问题标题】:Using "@" in regular expression with VB.NEt在带有 VB.NEt 的正则表达式中使用“@”
【发布时间】:2014-03-13 10:37:27
【问题描述】:

假设我必须检查给定字符串上是否存在“@” - 我应该在之前使用反斜杠吗?到目前为止,我发现它们都为我工作,但我不确定它是否总是在任何 Windows 主机上工作(这是必须在全球范围内工作的 VB.NET 应用程序的一部分)

字符串:Hello @world

模式1:Hello @world

模式2:Hello \@world

我应该使用哪一个来获得最精确的匹配?模式 1 还是模式 2?

我在 VS2010 (.NET FW 3.5) 上使用 VB.NET

谢谢

【问题讨论】:

  • 你到底在哪里使用反斜杠?您可以发布更清楚地显示您的问题的代码吗?

标签: regex vb.net


【解决方案1】:

@ 不是特殊的正则表达式字符,至少在 VB.NET 中不是。这意味着两种模式几乎相同,您可以使用任何您喜欢的模式。尽管为了便于阅读,您可能应该坚持使用不带反斜杠的模式。

您可以在 .NET here 中找到特殊正则表达式字符的完整列表。

【讨论】:

  • ...但请选择无反斜杠版本。如果不需要的话,为什么要用更多的反斜杠来污染你的正则表达式?
  • @AlanMoore。很公平,在帖子中添加了评论。谢谢
【解决方案2】:

我建议您将此选项保留在 Regex 引擎上。只需使用其Regex.Escape 功能。它会逃避必要的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2010-12-24
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    相关资源
    最近更新 更多