利用正则表达式处理,更方便!
参考: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编辑过]