Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String VBA将字符串解析为标记_String_Vba_Parsing - Fatal编程技术网

String VBA将字符串解析为标记

String VBA将字符串解析为标记,string,vba,parsing,String,Vba,Parsing,我有一个字符串,里面有一堆多字母代码,我想根据这些代码来解析它。我不知道如何让它查看多个字符来确定它是否构成代码的一部分 我的字符串如下所示: bbcteebobb 我想分析这些实例: E BB 计算机断层扫描 鲍勃 因此,结果应该是如下所示的输出(或数组): BB 计算机断层扫描 E E 上下快速移动 BB我会使用正则表达式。在工具|参考中,添加PC上可用的Microsoft VBScript正则表达式库的最高版本(我的5.5版)。然后可以使用以下代码: Sub main() Dim x,

我有一个字符串,里面有一堆多字母代码,我想根据这些代码来解析它。我不知道如何让它查看多个字符来确定它是否构成代码的一部分

我的字符串如下所示:

bbcteebobb

我想分析这些实例:

E BB 计算机断层扫描 鲍勃

因此,结果应该是如下所示的输出(或数组):

BB 计算机断层扫描 E E 上下快速移动
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库,太棒了!我用这个方法在女子滚轴德比赛的电子表格中增加处罚。如果你去过兰开斯特,你就有免费的票。