String VBA将字符串解析为标记
我有一个字符串,里面有一堆多字母代码,我想根据这些代码来解析它。我不知道如何让它查看多个字符来确定它是否构成代码的一部分 我的字符串如下所示: bbcteebobb 我想分析这些实例: E BB 计算机断层扫描 鲍勃 因此,结果应该是如下所示的输出(或数组): BB 计算机断层扫描 E E 上下快速移动String VBA将字符串解析为标记,string,vba,parsing,String,Vba,Parsing,我有一个字符串,里面有一堆多字母代码,我想根据这些代码来解析它。我不知道如何让它查看多个字符来确定它是否构成代码的一部分 我的字符串如下所示: bbcteebobb 我想分析这些实例: E BB 计算机断层扫描 鲍勃 因此,结果应该是如下所示的输出(或数组): BB 计算机断层扫描 E E 上下快速移动 BB我会使用正则表达式。在工具|参考中,添加PC上可用的Microsoft VBScript正则表达式库的最高版本(我的5.5版)。然后可以使用以下代码: Sub main() Dim x,
BB我会使用正则表达式。在工具|参考中,添加PC上可用的Microsoft VBScript正则表达式库的最高版本(我的5.5版)。然后可以使用以下代码:
Sub main()
Dim x, m
Set x = myparser("BBCTEEBOBBB")
For Each m In x
Debug.Print m.Value
Next
End Sub
Function myparser(string_to_parse)
Dim splitter As New RegExp
splitter.Pattern = "E|BB|CT|BOB"
splitter.Global = True
Set myparser = splitter.Execute(string_to_parse)
End Function
myparser
函数生成一个MatchCollection
对象,该对象可以像在main
子例程中一样进行浏览。输出是在输入字符串中找到的所有匹配项的顺序列表。您应该能够轻松地将其转换为生成数组或空格分隔的字符串。我将使用正则表达式。在工具|参考中,添加PC上可用的Microsoft VBScript正则表达式库的最高版本(我的5.5版)。然后可以使用以下代码:
Sub main()
Dim x, m
Set x = myparser("BBCTEEBOBBB")
For Each m In x
Debug.Print m.Value
Next
End Sub
Function myparser(string_to_parse)
Dim splitter As New RegExp
splitter.Pattern = "E|BB|CT|BOB"
splitter.Global = True
Set myparser = splitter.Execute(string_to_parse)
End Function
myparser
函数生成一个MatchCollection
对象,该对象可以像在main
子例程中一样进行浏览。输出是在输入字符串中找到的所有匹配项的顺序列表。您应该能够轻松地将其转换为生成数组或空格分隔的字符串。当您说VBA时,您的目标产品和版本是什么?(VB6、Access 2007、Excel 2003等)?是否可能某些代码是其他代码的子集。也就是说,可以有B代码和BB代码吗?另外,sourc字符串是否可能包含任何不是指定代码之一的内容?否。在本例中,我正在制作快速数据输入对话框表单,它可以填充电子表格,而无需计算单元格数。当您说VBA时,您的目标是什么特定的产品和版本?(VB6、Access 2007、Excel 2003等)?是否可能某些代码是其他代码的子集。也就是说,可以有B代码和BB代码吗?另外,sourc字符串是否可能包含任何不是指定代码之一的内容?否。在本例中,我正在制作快速数据输入对话框表单,它可以填充电子表格,而无需计算单元格数。整洁。我不知道内置的regexp库,太棒了!我用这个方法在女子滚轴德比赛的电子表格中增加处罚。如果你去过兰开斯特,你就有免费的票了。我不知道内置的regexp库,太棒了!我用这个方法在女子滚轴德比赛的电子表格中增加处罚。如果你去过兰开斯特,你就有免费的票。