以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如果把第一列的数字、汉字、字母分离出来  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=174121)

--  作者:zhuxinhui
--  发布时间:2022/1/2 12:01:00
--  如果把第一列的数字、汉字、字母分离出来

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


--  作者:hongsejiyi
--  发布时间: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编辑过]