asp.net - 如何在 vb.net 中做正则表达式

标签 asp.net regex vb.net

所以这里有很多关于正则表达式的问题和答案。缺点是绝大多数答案只是正则表达式...

我还用谷歌搜索 - 发现了数百个网站。试图遍历所有内容以获得快速理解和实现的答案并不容易。它们要么使用不同的语言——这可能不会有任何区别,尽管您在 C# 和 VB 中的转义方式不同,这会导致混淆什么是转义字符与正则表达式开关。

我苦苦挣扎的部分是理解它们,以便我可以实现一些显然很简单的表达式。

我的场景:

我必须检查给定字符串中的每个字符,如果正则表达式不允许任何字符,那么它应该返回 false。

示例:

我已经尝试了以下表达式(从这里的各种答案复制/粘贴....)

Dim r As New Regex("^[a-zA-Z0-9 ]*$")

也试过

Dim r As New Regex("[a-zA-Z0-9\s]")

也试过

Dim r as New Regex("^[A-Za-z0-9 ]*")

我一直在这样实现:

Dim r As New Regex(_fontJIAdieuxRegEx) '' where _fontJIAdieuxRegEx is one of the above regex strings.
Dim supported = r.IsMatch(fontName)

我一直在尝试验证如下内容:

darren 应该返回 True

da-rren 应该返回 False 由于 - 连字符

da rren 应该返回 True

现在,简单地说,这些表达式中的任何一个都将对所有字符串返回 True 或对所有字符串返回 False;所以我显然做错了什么。

我真的很感激有人指出我哪里出错了,并解释一下正则表达式的构成。

一旦我对它们有了更多的了解,我就需要能够使用不同的表达式来允许其他字符,例如 ! @ "' 等。所以请不要只是粘贴表达式来解决上面的简单示例。

最佳答案

第一个模式是正确的。如果字符串中只有一个字符匹配,则第二个模式将返回 true。如果字符串开头的零个或多个字符匹配,第三个模式将返回 true,它总是这样做。

我不知道你做了什么让它不起作用,但像这样使用它是可行的:

Dim _fontJIAdieuxRegEx As String = "^[a-zA-Z0-9 ]*$"

Dim r As New Regex(_fontJIAdieuxRegEx)

Console.WriteLine(r.IsMatch("darren"))
Console.WriteLine(r.IsMatch("da-rren"))
Console.WriteLine(r.IsMatch("da rren"))

输出:

True
False
True

关于asp.net - 如何在 vb.net 中做正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828295/

相关文章:

c# - ASP.NET 身份角色已存在

asp.net - 如何将 Javascript 属性添加到 ASP.NET RadioButtonList 项目?

sql - vb.net 从数据库中读取数据

.net - 无法在 VB.NET 中的可序列化单例类的实例上调用 Serialize()

javascript - 从后面的 ASP.NET C# 代码解析二维数组到 Javascript

正则表达式选择多个组

javascript - 在 JavaScript 中使用正则表达式

php - 如何模仿 Stack Overflow 自动链接行为

vb.net - 如何重写这个涉及检查相等运算符重载中的三个 Nullable(Of T) 值的条件逻辑?

asp.net - 表格内的文本框超出 100% 宽度(仅限 IE)