加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

机房收费系统技术盘点--正则表达式

发布时间:2020-12-14 02:28:06 所属栏目:百科 来源:网络整理
导读:现在,我正在写机房收费系统VB.NET版,也没写多少,刚写了4个功能(而且还有一个功能现在还出错,没调试出来)。有些地方感觉写的还行,有的地方还需要改进。我说说,我在机房收费系统中用的一些感觉比较好的东西。 首先是 正则表达式 ,只要Imports System.

现在,我正在写机房收费系统VB.NET版,也没写多少,刚写了4个功能(而且还有一个功能现在还出错,没调试出来)。有些地方感觉写的还行,有的地方还需要改进。我说说,我在机房收费系统中用的一些感觉比较好的东西。

首先是正则表达式,只要Imports System.Text.RegularExpressions就可以使用正则表达式了, 但是其实我对正则表达式知道的并不多。在这我把我用到的列举一下,有兴趣的可以看这个——正则表达式30分钟入门教程

我现在用到的就是^,$(分别是数字键6和4上的),这两个是表示匹配的开始和结束。使用的时候最好把这两个加上,因为像是d是匹配数字的,如果我写了这样一个正则匹配“d{2}”,表示匹配两位数字,那么输入的字符串中只要有两个连续的数字,就可以通过验证;那么这样一个字符串“23wowne”,验证也是可以通的过的。但是写上^$,变成这样“^d{2}$”,上面那个字符串“23wowne”,是通不过验证的。

还有就是d(匹配数字),w(匹配字母或数字或下划线或汉字),据说,D表示匹配任意非数字的字符,W表示匹配任意不是字母,数字,下划线,汉字的字符,我没用过。这个内容是在“正则表达式30分钟入门教程”反义中。

. 匹配除换行符以外的任意字符
w 匹配字母或数字或下划线或汉字
s 匹配任意的空白符
d 匹配数字
b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

还有就是重复次数,学名叫限定符。我常用的就是{n},重复N次和{n,m},重复n到m次。

* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

具体代码是这样的,网上也有很多。这是登录窗体,然后控制用户名和密码的输入。机房收费系统中,这样的验证挺多地方都用的上,可以写成一个方法。或者利用一个循环遍历,将窗体上用的上的控件都遍历一遍,检查格式。但是这样的if嵌套会比较多,逻辑会变复杂,不好,还是一个一个检查吧!

Imports System.Text.RegularExpressions '正则表达式

Public Class frmLogin

    Private Sub btnLogin_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles btnLogin.Click
  
        '正则表达式,控制输入
        Dim patternUserID As String
        Dim patternPassword As String
       
       '对于正则表达式的定义,重复过多
        patternUserID = "^w{5,20}$"
        patternPassword = "^w{5,15}$"

        '验证用户名格式
        If Not (Regex.Match(txtUserID.Text,patternUserID).Success) Then
            MessageBox.Show("用户名为长度为5-20的任意字母,数字,下划线")
            txtUserID.Focus()
            Exit Sub
        Else
            '验证密码格式
            If Not (Regex.Match(txtPassword.Text,patternPassword).Success) Then
                MessageBox.Show("密码为长度为5-15的任意字母,下划线!")
                txtPassword.Focus()
                Exit Sub
            End If
        End If
    End Sub
End Class

然后是,不是特别重要的,获得计算机名。由于VB版的时候获取本机名算是比较复杂,要用到API。而在VB.NET中只要一句话就能搞定,很是方便。System.Net.Dns.GetHostName。

ComputerName = System.Net.Dns.GetHostName

再来就是真的很简单的VS的一些应用,以前我没有用过,现在才注意到,觉得这些功能挺好的。

我在解决方法资源管理器中,选择了一个窗体文件,然后显示的就是这样一排工具,

,从左到右依次是属性,查看所有文件,刷新,查看代码,视图设计器,查看类图。

点击“查看所有文件”,就会出现红框中的文件,再次点击,多出的文件就会隐藏。点开这些文件,可以发现里面有很多的文件。但是,目前好像用处不大。只是,以前总奇怪,C#中,如果引用了什么,可以在引用文件夹中看到,但是VB.NET中没有引用文件夹,总也看不到引用了什么。现在发现原来他是有引用文件夹的。

然后就是查看类图,感觉这个功能挺好的。以后用来看每层的类关系,很方便。

再来就是SqlHelper,可以增加D层代码的复用率。但是我也不大会,下次再写~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读