Vbscript 如何仅在双引号之间替换分号?

Vbscript 如何仅在双引号之间替换分号?,vbscript,Vbscript,使用VBScript,我需要在下面的文本行中将分号替换为逗号,但仅在双引号Chr(34)内的子字符串中。我尝试使用Do While循环,但没有成功 2015/003;2015-12-15;;;;欧元;;;"170946;01";"164332;04";;"23937;99";91 我尝试的代码: stop_1 = InStr(1, text, Chr(34)) stop_2 = InStr(InStr(1, text, Chr(34))+1, text, Chr(34)) Do While s

使用VBScript,我需要在下面的文本行中将分号替换为逗号,但仅在双引号
Chr(34)
内的子字符串中。我尝试使用
Do While
循环,但没有成功

2015/003;2015-12-15;;;;欧元;;;"170946;01";"164332;04";;"23937;99";91
我尝试的代码:

stop_1 = InStr(1, text, Chr(34))
stop_2 = InStr(InStr(1, text, Chr(34))+1, text, Chr(34))
Do While stop_1 > 0
  text = Replace(Mid(text, stop_1+1, stop_2-stop_1), ";", ",")
  stop_1 = InStr(1, text, Chr(34))
  stop_2 = InStr(InStr(1, text, Chr(34))+1, text, Chr(34))
Loop

您可以使用正则表达式和:


考虑下面的例子。此代码将字符串拆分为子字符串数组,子字符串由源字符串中的双引号分隔,因此第一个元素是第一个双引号之前的文本,第二个元素是双引号之间的文本,依此类推:奇数元素对应双引号外的文本,偶数元素对应双引号内的文本。然后从第二个元素开始循环索引1(基于零的数组)和步骤2,从而只处理双引号内的元素:替换
带有
。之后,加入已处理数组以检索字符串

s = "2015/003;2015-12-15;;;;EUR;;;""170946;01"";""164332;04"";;""23937;99"";91"
a = Split(s, """")
For i = 1 To UBound(a) Step 2
    a(i) = Replace(a(i), ";", ",")
Next
s = Join(a, """")

我已经添加了我的代码。它不会生成任何记录。谢谢你,安斯加。我得到的是“2015/003;2015-12-15;;;EUR;;;91”而不是“2015/003;2015-12-15;;;EUR;;;;;“170946,01”;“164332,04”;“23937,99”;“91”。我应该在脚本中更改什么?@PrzemyslawWojda我的错。在为我的答案清理代码时,我错过了函数名的一次出现。固定的。
s = "2015/003;2015-12-15;;;;EUR;;;""170946;01"";""164332;04"";;""23937;99"";91"
a = Split(s, """")
For i = 1 To UBound(a) Step 2
    a(i) = Replace(a(i), ";", ",")
Next
s = Join(a, """")