Foxtable(狐表)用户栏目专家坐堂 → 如果把第一列的数字、汉字、字母分离出来


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

主题:如果把第一列的数字、汉字、字母分离出来

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


加好友 发短信
等级:八尾狐 帖子:2079 积分:7006 威望:0 精华:0 注册:2017/11/8 17:37:00
如果把第一列的数字、汉字、字母分离出来  发帖心情 Post By:2022/1/2 12:01:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20220102120201.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


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


加好友 发短信
等级:小狐 帖子:346 积分:5445 威望:0 精华:0 注册:2019/1/1 15:53:00
  发帖心情 Post By:2022/1/3 13:59:00 [只看该作者]

利用正则表达式处理,更方便!

参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=159568&replyID=&skin=1

 

 


图片点击可在新窗口打开查看此主题相关图片如下:正则_2022-01-03_142203.png
图片点击可在新窗口打开查看
自定义函数如下1、2,请参考

 

'用正则表达式来处理字符串函数名1:cl_str_regex
Dim str As String = args(0)
Dim str2 As String = args(1)
Dim flag As Boolean =args(2)
Dim str_jg As String

Select Case str2
    Case "1"   '汉字
        str_jg= Functions.Execute("regex","[\u4E00-\u9FFF]",str,flag)
    Case "2" '数字
        str_jg=Functions.Execute("regex","[-]|\d+",str,flag)
    Case "3"  '字母
        str_jg=Functions.Execute("regex","[a-zA-Z]+",str,flag)
    Case "4"  '汉字数字字符
        str_jg=Functions.Execute("regex","\w+",str,flag)
    Case "5"  '空白字符
        str_jg=Functions.Execute("regex","\s+",str,flag)
    Case Else
        str_jg=Nothing
End Select
Return str_jg

 

 

'本函数是用【正则表达式】来处理字符串的函数名2,regex
If args.count=3 Then    '共需要三个参数
    Dim pattern As String = args(0)   '第一个参数是模式字符串
    Dim txt As String = args(1)   '第二个是测试字符串
    Dim flag As Boolean = args(2)  '第三个是逻辑型开关,True,只返回匹配部分, False则去掉匹配部分
   
    If flag = True Then  '如果为真
        Dim rgx = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
        Dim zb As new StringBuilder  '记忆匹配部分
        For Each  match As System.Text.RegularExpressions.Match In rgx.Matches(txt)
            zb.Append( match.Value )  '加入到SB中的匹配部分
        Next
        Return zb.ToString  '返回匹配部分
    Else    '如果为假
        Dim rgx = new System.Text.RegularExpressions.Regex(pattern)
        Return rgx.replace(txt,"")
    End If
Else   '如果参数不是三个
    Return Nothing   '返回空
End If

[此贴子已经被作者于2022/1/3 14:27:15编辑过]

 回到顶部