具有前向和反斜杠的正则表达式

时间:2017-07-14 15:32:01

标签: regex vb.net

我正在使用正则表达式来检查字符串与白名单。此正则表达式将尝试匹配任何帐户数据。它挂起的特定字符串是日期10/12/2015。白名单应包含字母数字字符和这些特殊字符\/-@,空格,.,#

Dim pattern As = "^(?=.*[A-Za-z0-9])[A-Za-z0-9\\/-@.,# _]*$"

这个特殊的正则表达式将用于VB.NET。提前谢谢!

1 个答案:

答案 0 :(得分:2)

您的解决方案应该是

Dim pattern As String = "^(?=.*[A-Za-z0-9])[A-Za-z0-9\\/@.,# _-]*$"
Dim s As String = "10/12/2015"
Console.WriteLine(Regex.IsMatch(s, pattern))

请参阅VB.NET demo

您无需在.NET正则表达式模式中转义/,并且要匹配-,将其放在字符类的结尾或开头,或者在范围之后,或简写字符类。

<强>详情:

  • ^ - 字符串开头
  • (?=.*[A-Za-z0-9]) - 一个积极的先行者,需要在除换行符之外的任何0 +字符之后存在ASCII字母数字字符(LF,.*
  • [A-Za-z0-9\\/@.,# _-]* - 0个或更多ASCII字母(A-Za-z),数字(0-9)或\(与\\匹配),{{1} },/@.,,空格,#_字符
  • - - 字符串结束。

要使前瞻效率更高一些,请使用principle of contrast,将$替换为与0 +非字母数字匹配的否定字符类.*

[^A-Za-z0-9]*