-- 作者: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编辑过]
|