使用QTP中的Split函数从字符串中获取值

时间:2013-12-27 12:21:41

标签: regex vba qtp

我需要在QTP中根据分隔符“,”将以下字符串中的值分开 (CurrentAmount = 140,000.00,货币= USD,originalAmount = 200,000.00)

我使用下面的代码

splittext= Split (strng, ",")
For i=0 to ubound(splittext)
msgbox splittext(i)
next

这里的问题是,输出值是这样的

0= CurrentAmount=140
1= 000.00
2= currency=USD.... so on

由于140,000.00中的“,”,代码将以下值(CurrentAmount = 140,000.00)拆分为两部分

我需要一个代码来根据分隔符“,”来分隔值,但是应该忽略数字数据中的“,”

请让我解决这个问题......谢谢

2 个答案:

答案 0 :(得分:1)

这应该很简单 - 假设在所需的delim逗号char之后有一个空格。注意Split函数中使用逗号后的空格。

Public Sub Test()
    splitText = Split("CurrentAmount=140,000.00, currency=USD, originalAmount=200,000.00", ", ")
    For i = 0 To UBound(splitText)
        MsgBox splitText(i)
    Next
End Sub

答案 1 :(得分:1)

Pankaj Jaju的解决方案有效,假设您可以信任CSV字符串,以便在分隔字段的逗号后始终有空格。但我认为潜在的问题是输入的格式没有明确规定。如果你可以改变格式,你应该删除数字中的逗号。或者你可以正确地逃避逗号,但是正确使用正则表达式会稍微复杂一些。 (关于如何以CSV格式转义逗号有不同的标准 - 某些系统使用\,,其他系统使用引号。)