Foxtable(狐表)用户栏目专家坐堂 → [求助]从一个字符串中提取特定字符的问题


  共有14653人关注过本帖树形打印复制链接

主题:[求助]从一个字符串中提取特定字符的问题

帅哥哟,离线,有人找我吗?
dlovef
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1323 威望:0 精华:0 注册:2011/6/6 12:22:00
[求助]从一个字符串中提取特定字符的问题  发帖心情 Post By:2011/8/9 11:13:00 [显示全部帖子]

有没有什么办法能够从诸如"一二三四五AAA00000六七八"这样的字符串中将“AAA00000”提取出来。
1,“AAA00000”格式固定,三位字母,五位数字
2,“AAA00000”出现位置不固定


 回到顶部
帅哥哟,离线,有人找我吗?
dlovef
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1323 威望:0 精华:0 注册:2011/6/6 12:22:00
  发帖心情 Post By:2011/8/9 11:48:00 [显示全部帖子]

回复yanzhen2010:后面的字数也不固定。
回复狐狸爸爸:"AAA00000"只是个样式,AAA代表任意三位字母,00000代表任意五位数字。所以您的这段代码好像行不通吧。

 回到顶部
帅哥哟,离线,有人找我吗?
dlovef
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1323 威望:0 精华:0 注册:2011/6/6 12:22:00
  发帖心情 Post By:2011/8/9 12:21:00 [显示全部帖子]

回复狐狸爸爸:"AAA00000"只是个样式,AAA代表任意三位字母,00000代表任意五位数字。所以您的这段代码好像行不通吧。


 回到顶部
帅哥哟,离线,有人找我吗?
dlovef
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1323 威望:0 精华:0 注册:2011/6/6 12:22:00
  发帖心情 Post By:2011/8/9 13:02:00 [显示全部帖子]

狐爸,以下代码执行后结果是这样的?请问是什么原因?
Dim s As String = "一二三四五AAA00000六七八"
Dim str As String
For i As Integer = 1 To s.Length-8
str = Mid(s,i,8)
If Char.IsLetter(Left(str,3)) And Char.IsNumber(Right(str,5)) Then
Output.Show(str)
End If
Next

结果

图片点击可在新窗口打开查看此主题相关图片如下:截图05.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
dlovef
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1323 威望:0 精华:0 注册:2011/6/6 12:22:00
  发帖心情 Post By:2011/8/9 13:57:00 [显示全部帖子]

为什么要加【Exit For】呢?是不是char的Is类方法只能判断字符串中的第一位字符呀
以下是引用狐狸爸爸在2011-8-9 13:51:00的发言:
Dim s As String = "一二三四五AAA00000六七八"
Dim str As String
For i As Integer = 1 To s.Length-8
    str = Mid(s,i,8)
    If Char.IsLetter(Left(str,3)) And Char.IsNumber(Right(str,5)) Then
        Output.Show(str)
        Exit For
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
dlovef
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1323 威望:0 精华:0 注册:2011/6/6 12:22:00
  发帖心情 Post By:2011/8/9 14:32:00 [显示全部帖子]

通过以下代码解决。

Dim s As String = "一二三四五AAA00000六七八"
Dim str As String
For i As Integer = 1 To s.Length-7
    str = Mid(s,i,8)
    If str Like "[a-z][a-z][a-z]#####" Then
        Output.Show(str)
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
dlovef
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1323 威望:0 精华:0 注册:2011/6/6 12:22:00
  发帖心情 Post By:2011/8/9 15:23:00 [显示全部帖子]

感谢各位热情相助,该问题已经解决。
以下是引用dlovef在2011-8-9 14:32:00的发言:
通过以下代码解决。

Dim s As String = "一二三四五AAA00000六七八"
Dim str As String
For i As Integer = 1 To s.Length-7
    str = Mid(s,i,8)
    If str Like "[a-z][a-z][a-z]#####" Then
        Output.Show(str)
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
dlovef
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:172 积分:1323 威望:0 精华:0 注册:2011/6/6 12:22:00
  发帖心情 Post By:2011/8/9 17:04:00 [显示全部帖子]

图片点击可在新窗口打开查看
以下是引用狐狸爸爸在2011-8-9 16:02:00的发言:
楼主自己的代码很好。


 回到顶部