Foxtable(狐表)用户栏目专家坐堂 → 文字识别怎么弄


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

主题:文字识别怎么弄

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


加好友 发短信
等级:小狐 帖子:397 积分:4008 威望:0 精华:0 注册:2012/2/9 20:09:00
文字识别怎么弄  发帖心情 Post By:2024/12/24 13:53:00 [只看该作者]


日期:2025-01-13,
王大侠,2人 电话:15912311231
酒店:关外

我以为经常要录入客户信息, 类似这样的一段文字, 怎么能一键识别,提取出来 姓名、手机号、人数、日期,这4个字段

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/24 14:06:00 [只看该作者]

Dim s As String = "日期:2025-01-13, " & vbcrlf & "王大侠,2人 电话:15912311231"
Dim ss() As String = s.Replace(vbcr, "").Split(vblf)
For Each a As String In ss
    MsgBox(a)
    Dim aa() As String = a.Split(New Char(){":", ","})
    For Each b As String In aa
        MsgBox(b)
    Next 
Next 

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


加好友 发短信
等级:小狐 帖子:397 积分:4008 威望:0 精华:0 注册:2012/2/9 20:09:00
  发帖心情 Post By:2024/12/24 14:11:00 [只看该作者]

试了一下,上面的代码,只是把文字按空格或标点断开,   我的需求是,在混乱的一段文字里,根据特征,自动识别出来姓名(3个汉字以内)。手机号(11个数字),人数(数字+人),日期(格式可能不同),  分别赋予到4个变量里,  
[此贴子已经被作者于2024/12/24 14:12:47编辑过]

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/24 14:22:00 [只看该作者]

根据什么特征呢?

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


加好友 发短信
等级:小狐 帖子:397 积分:4008 威望:0 精华:0 注册:2012/2/9 20:09:00
  发帖心情 Post By:2024/12/24 16:34:00 [只看该作者]

手机号我能提取出来了, 
 If Char.isnumber(b) And len(b) = 11 Then
            e.Form.Controls("TextBox_shoujihao").Value=b
        End If


  怎么判断并提取日期?涉及日期的文字有可能 2024-12-24  或者 2024年12月24日
[此贴子已经被作者于2024/12/24 16:34:50编辑过]

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/24 16:54:00 [只看该作者]

用正则:

Dim pattern As String = "\d{4}-\d{1,2}-\d{1,2}|\d{4}年\d{1,2}月\d{1,2}日"
Dim txt = "涉及日期的文字有可能 2024-12-24或者 2024年12月24日"
Dim rgx = New System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)

For Each match As System.Text.RegularExpressions.Match In rgx.Matches(txt)
    Output.Show(match.Value)
Next

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


加好友 发短信
等级:小狐 帖子:397 积分:4008 威望:0 精华:0 注册:2012/2/9 20:09:00
  发帖心情 Post By:2024/12/24 18:41:00 [只看该作者]

姓名怎么获取呢?

我想了几个办法
1. 中文字符2个或3个的。

2.用鼠标选中的文字,自动提取出来。  鼠标选中的字符, 或者鼠标单击的字符附近2-3个字符,提取出来,
选中字符、单击字符是什么事件,用什么方法提取?


图片点击可在新窗口打开查看
[此贴子已经被作者于2024/12/24 18:44:21编辑过]

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/24 19:29:00 [只看该作者]

没有【选中字符、单击字符】这种事件。如果没有什么规律,只能手工复制粘贴了

 回到顶部