Vbscript 需要在撇号子串中找到字符并替换它,有什么想法吗?

Vbscript 需要在撇号子串中找到字符并替换它,有什么想法吗?,vbscript,Vbscript,好的,让我先回答这个问题,我对vb脚本非常陌生,但我需要在另一个开发人员创建的脚本中添加一个内容,他现在不在 问题: 我正在获取数据,并将其输入到流程中。我已经拥有的脚本处理了一些我不想讨论的事情。我发现它不能正确处理双引号中的逗号 所以我得到了一些像这样的数据 乔、比尔、詹姆斯、亚历克斯,“谷歌公司”,罗斯,“Kickstarter,LLC” 发生的情况是,当这个脚本启动到流程应用程序时,它会因为双引号中的逗号而崩溃。我需要能够让这个脚本进入并用一些更独特的东西替换Google和Kicksta

好的,让我先回答这个问题,我对vb脚本非常陌生,但我需要在另一个开发人员创建的脚本中添加一个内容,他现在不在

问题: 我正在获取数据,并将其输入到流程中。我已经拥有的脚本处理了一些我不想讨论的事情。我发现它不能正确处理双引号中的逗号

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

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

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

如果你能回答这个问题,我会很感激,但我不介意这样做的方向,等等


非常感谢您的回答。同样,vbascript的新手今天才开始阅读它的语法。

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

下面是一个它可能看起来像什么的例子。这个例子肯定不是防弹的,它做了一些假设,但我认为它会让你开始:

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

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

下面是一个它可能看起来像什么的例子。这个例子肯定不是防弹的,它做了一些假设,但我认为它会让你开始:

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

这听起来像是一个普通的旧CSV(逗号分隔值)文件。有很多方法可以解析这样的文件,所以你不必担心这样的问题。这听起来像是一个普通的旧CSV(逗号分隔值)文件。有很多方法可以解析这样的文件,所以您不必担心这样的问题。