我正在尝试编写一个函数,该函数接受一个字符串,对其进行解析,然后返回另一个字符串,该字符串总结了原始字符串中连续字母或数字字符的数量。
例如,字符串999aa45bbx
会回来3N2A2N3A
,
i.e.
- 3个数字,
- 接下来是 2 个阿尔法,
- 2 个数字,
- 3 阿尔法。
我正在使用该函数来分析保险单 ID 号的格式。到目前为止,我在网上找到了提取字母或数字字符的解决方案,但没有描述这些字符在原始字符串中存在的格式或顺序。
有人可以帮忙吗?
像这样的正则表达式就可以完成这项工作
- press alt /questions/tagged/altf11 /questions/tagged/f11一起去VBE
- 插入模块
- 复制并粘贴下面的代码
- press alt /questions/tagged/altf11 /questions/tagged/f11一起返回 Excel
那么你可以在Excel中使用该函数(它也检测无效字符串),即在B1中
=AlphaNumeric(A1)
Function AlphaNumeric(strIn As String) As String
Dim objRegex As Object
Dim objRegMC As Object
Dim objRegM As Object
Dim strOut As String
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Global = True
.ignorecase = True
.Pattern = "[^\w]"
If .test(strIn) Then
AlphaNumeric = "One or more characters is invalid"
Else
.Pattern = "(\d+|[a-z]+)"
Set objRegMC = .Execute(strIn)
For Each objRegM In objRegMC
strOut = strOut & (objRegM.Length & IIf(IsNumeric(objRegM), "N", "A"))
Next
AlphaNumeric = strOut
End If
End With
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)