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

Extract substrings between two delimiter characters from a string in c++

本文关键字:字符串 两个 分隔符 之间 c++ 提取      更新时间:2023-10-16

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

例如,我的字符串是:

12345Disk&Ven_SRT&Prod_USB_3.0_JET_16G&Rev_1100&049113082705515646000190&0]

起始分隔符为'_',结束分隔符为'amp;'。我需要所有介于"_"answers"&"之间的子字符串。即,我的输出应该是:

SRT    USB_3.0_JET_16G    1100

我尝试使用boost::标记化器,但它也标记了字符串"USB_3.0_JET_16G",因为它包含"_"。所以我的目标是介于"_"answers"&amp应该是子字符串的一部分,如果存在多个起始和结束分隔符,则应该检索所有这些子字符串。

如何做到这一点?我正在使用VS 2010。

谢谢

一种可能的解决方案是分两步完成:首先对'&'字符进行标记,这很容易,因为所需的子字符串都不包含该字符。

然后在第二遍中,您只需丢弃第一遍中得到的子字符串中第一个'_'字符之前的任何文本