1

好的,让我以我对 vb 脚本非常陌生这一事实作为这个问题的开头,但我需要对另一个开发人员创建的脚本进行补充,而他不在。

问题。:我正在获取输入到流程中的数据。我已经拥有的脚本处理了一些我不会涉及的事情。我发现它不能正确处理的一件事是逗号出现在双引号中。

所以我得到了一些这样的数据。:

乔、比尔、詹姆斯、亚历克斯,“谷歌公司”,罗斯,“Kickstarter,LLC”

发生的情况是,当此脚本启动到流程应用程序时,由于双引号中的这些逗号,它会爆炸。我需要能够让这个脚本进入并用更独特的东西替换 Google 和 Kickstarter 块中的逗号。

如果您对此有答案,我将不胜感激,但我不介意一些方向,无论是做这样的事情,等等。

非常感谢任何答案。再次对 vbascript 非常陌生,今天才开始阅读它的语法。

4

1 回答 1

1

您遗漏了有关输入数据格式和替换文本的一些细节。但是,您需要采取的方法是使用 VBScript 的正则表达式功能来识别输入数据中的模式,然后使用“替换”方法来替换它们。这是一篇关于 VBScript 中的正则表达式的简短 MS 文章

这是它可能看起来的示例。这个例子绝对不是防弹的,它做了一些假设,但我认为它会让你开始:

Dim re, strstr, newstrstr
Dim inputstrarray(7)
Set re = new regexp 

inputstrarray(0) = "Joe"
inputstrarray(1) = "Bill"
inputstrarray(2) = "James"
inputstrarray(3) = "Alex"
inputstrarray(4) = """" & "Google, Inc" & """"
inputstrarray(5) = "Rose"
inputstrarray(6) = """" & "Kickstarter, LLC" & """"

re.pattern = ",\s"  'pattern is a comma followed by a space
For Each strstr In inputstrarray 'loop through each string in the array
    newstrstr = re.Replace(strstr, "_")  'replace the pattern with an underscore
    If StrComp(strstr,newstrstr) Then 
        Wscript.Echo "Replace " & strstr & " with " & newstrstr
    Else
        Wscript.Echo "No Change"   
    End If
Next

输出如下所示:

No Change
No Change
No Change
No Change
Replace "Google, Inc" with "Google_Inc"
No Change
Replace "Kickstarter, LLC" with "Kickstarter_LLC"
No Change
于 2012-06-25T23:42:27.683 回答