在C++中从字符串中提取两个分隔符字符之间的子串

在C++中从字符串中提取两个分隔符字符之间的子串,c++,string,visual-studio-2010,C++,String,Visual Studio 2010,如果子字符串介于开始分隔符和结束分隔符之间,我必须从字符串中提取子字符串 例如,我的字符串是: 12345\Disk&Ven_SRT&Prod_USB_3.0_JET_16G&Rev_1100&049113082705515646000190&0] 开始分隔符是“ux”,结束分隔符是“&”。我需要介于‘‘’和‘&’之间的所有子字符串。i、 例如,我的输出应该是: SRT USB_3.0_JET_16G 1100 我尝试使用boost::to

如果子字符串介于开始分隔符和结束分隔符之间,我必须从字符串中提取子字符串

例如,我的字符串是:

12345\Disk&Ven_SRT&Prod_USB_3.0_JET_16G&Rev_1100&049113082705515646000190&0]
开始分隔符是“ux”,结束分隔符是“&”。我需要介于‘‘’和‘&’之间的所有子字符串。i、 例如,我的输出应该是:

SRT    USB_3.0_JET_16G    1100
我尝试使用boost::tokenizer,但它也标记字符串“USB_3.0_JET_16G”,因为它包含“\u0”。因此,我的目标是,介于“u”和“&”之间的任何内容都应该是子字符串的一部分,如果存在多个开始和结束分隔符,则应检索所有这些子字符串

如何做到这一点?我正在使用VS2010


谢谢

一个可能的解决方案是分两步完成:首先,标记“&”字符,这很容易,因为您想要的子字符串都不包含该字符


然后,在第二遍中,您只需从第一遍中获得的子字符串中丢弃包含第一个“\u”字符的任何文本。

有许多可能的解决方案,您迄今为止尝试了什么?它是如何工作的?它是如何工作的?@JoachimPileborg:我通过指定boost::char_sep&]来使用boost::tokenizer;。但是它分割了我需要的第二个子字符串,这取决于“\u1”的出现。可以使用简单的循环读取子字符串。但我更喜欢用库函数来做。在这种情况下,考虑到其中一个子字符串包含一个分隔符,您可能没有选择?