请教一个问题,可能用正则解决起来很简单

yxr_2008 2012-05-24 10:45:20
简单的说就是要比较一下两个字符串,这两个字符串都是6位数字组成,比如123456和173458,我要判断这两个字符串里面有没有任意四位数字的位置和数字都相同,结果返回True和False即可。比如123456和173458中1?345?是符合匹配条件的就返回True。
这看似一个很简单的问题,我一时也没想到什么解决办法,用正则表达式的话是不是很简单啊?我不怎么懂正则,请朋友们帮一下忙写写代码,谢谢!!!
...全文
41 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yxr_2008 2012-05-24
  • 打赏
  • 举报
回复
好的,谢谢!结贴。
  • 打赏
  • 举报
回复
可能正则也不比这个快...毕竟,字符串是任意的......函数用<>可能会提高些许效率
yxr_2008 2012-05-24
  • 打赏
  • 举报
回复
谢谢yiguangqiang88朋友!
我目前也是这么做的,但是因为数据量很大,我担心这个方法比较慢,因为要逐个字符比较嘛,而我又不懂正则,也不知道用正则的话能否实现以及可以提高多少效率。
  • 打赏
  • 举报
回复

Option Explicit

Private Sub Form_Load()
Debug.Print CompareStr("1234567", "1837590")
End Sub

Private Function CompareStr(ByVal Str1 As String, ByVal Str2 As String) As Boolean
Dim i As Integer, m As Integer, n As Integer
If Len(Str1) > Len(Str2) Then m = Len(Str2) Else m = Len(Str1)
For i = 1 To m
If Mid(Str1, i, 1) = Mid(Str2, i, 1) Then n = n + 1
If n > 3 Then CompareStr = True: Exit Function
Next
CompareStr = False
End Function

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧