需要在撇号子字符串中找到字符并替换它,任何想法?

时间:2012-06-25 22:29:25

标签: vbscript

好吧,让我先说一下这个问题,因为我对vb脚本非常陌生,但我需要添加另一个开发人员创建的脚本并且他不在。

问题。 : 我正在获取进入流程的数据。我已经处理的脚本处理了一些我不会涉及的内容。我发现它无法正确处理的一件事是以双引号出现的逗号。

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

Joe,Bill,James,Alex,“Google,Inc”,Rose,“Kickstarter,LLC”

当这个脚本踢到流程应用程序时会发生什么事情,因为双引号中的这些逗号,它会爆炸。我需要能够让这个脚本进入并用一些更独特的东西替换Google和Kickstarter块中的那些逗号。

如果你对此有了答案,我会很感激,但是我不介意某些方向做任何类似的事情,等等。

非常感谢任何答案。 vbascript再一次刚刚开始阅读它的语法。

1 个答案:

答案 0 :(得分:1)

您遗漏了有关输入数据格式和替换文本的一些详细信息。但是,您需要采用的方法是使用VBScript的正则表达式功能来识别输入数据中的模式,然后使用“替换”方法替换它们。这是一个short MS article about regular expressions in VBScript

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

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