如何用正则表达式分割字符串?

xiancaiyatou 2011-02-22 02:14:22
有一段文字,如何用正则表达式将文字按标点符号分割?
即str="胸廓对称,两胸膈上骨性肋骨未见明显错位性骨折征象。两肺纹理增多、增粗,未见浸润性病变;气管居中,纵隔无移位,心影外形、大小正常;两膈面光滑,肋膈角锐利。"
如何用正则表达式分割后存储在vector<CSing> strvec中,即
strvec[1]="胸廓对称",
strvec[2]="两胸膈上骨性肋骨未见明显错位性骨折征象",
strvec[3]="两肺纹理增多"…………以此类推。
怎么实现啊?
还有regex_split()的参数怎么设啊?
求教高手!!!!!!!!
我学的是VC++
...全文
162 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyx100 2011-02-23
  • 打赏
  • 举报
回复
//=======================================================================
// 函数原型: int CSYSGlobal::SeparateString(const CString &strSrc, LPCTSTR szSep, CStringList *listString)
// 功能描述: 把 strSrc 以 cSep
// 被访问表: 无
// 被更新表: 无
// 参数说明: 名称 类型 说明
// strSrc const CString & 源串
// szSep LPCTSTR 分割符(串)
// listString CStringList* 分析结果
// 返 回 值: 分割结果项数
// 依 赖 于:
// 被引用于:
// 创建日期: 2007年8月17日 12时39分50秒
// 修改历史:
//=======================================================================
int CSYSGlobal::SeparateString(const CString &strSrc, LPCTSTR szSep, CStringList *listString)
{
int iCount = 0;
CString strRemain ;
CString strTableName, strColumnName, strColumnCName, strTmp;
int iFind;
CString strSQLExec;
BOOL bFinished;

listString->RemoveAll();
strRemain = strSrc;
//strRemain.TrimLeft();
//strRemain.TrimRight();
bFinished = FALSE;
while ( ! bFinished /*strRemain.GetLength() > 0*/ )
{
iCount ++;
iFind = strRemain.Find( szSep );


if ( iFind > 0 )
{
strTmp = strRemain.Left( iFind );
bFinished = FALSE ;
}
else if ( iFind == 0 )
{//找到一个""
strTmp = _T( "" );

bFinished = strRemain.GetLength() == 0 ? TRUE : FALSE;
}
else
{//处理一次
strTmp = strRemain;
bFinished = TRUE ;
}

listString->AddTail( strTmp );

if ( bFinished )
{
break;
}
else
{
if ( strRemain.GetLength() - 1 != iFind )
{
strRemain = strRemain.Right( strRemain.GetLength() - iFind - 1 );
}
else
{
strRemain = _T( "" );
}
}
}

return iCount;
}
o_yale_o 2011-02-22
  • 打赏
  • 举报
回复
//=======================================================================
// 函数原型: int CSYSGlobal::SeparateString(const CString &strSrc, LPCTSTR szSep, CStringList *listString)
// 功能描述: 把 strSrc 以 cSep
// 被访问表: 无
// 被更新表: 无
// 参数说明: 名称 类型 说明
// strSrc const CString & 源串
// szSep LPCTSTR 分割符(串)
// listString CStringList* 分析结果
// 返 回 值: 分割结果项数
// 依 赖 于:
// 被引用于:
// 创建日期: 2007年8月17日 12时39分50秒
// 修改历史:
//=======================================================================
int CSYSGlobal::SeparateString(const CString &strSrc, LPCTSTR szSep, CStringList *listString)
{
int iCount = 0;
CString strRemain ;
CString strTableName, strColumnName, strColumnCName, strTmp;
int iFind;
CString strSQLExec;
BOOL bFinished;

listString->RemoveAll();
strRemain = strSrc;
//strRemain.TrimLeft();
//strRemain.TrimRight();
bFinished = FALSE;
while ( ! bFinished /*strRemain.GetLength() > 0*/ )
{
iCount ++;
iFind = strRemain.Find( szSep );


if ( iFind > 0 )
{
strTmp = strRemain.Left( iFind );
bFinished = FALSE ;
}
else if ( iFind == 0 )
{//找到一个""
strTmp = _T( "" );

bFinished = strRemain.GetLength() == 0 ? TRUE : FALSE;
}
else
{//处理一次
strTmp = strRemain;
bFinished = TRUE ;
}

listString->AddTail( strTmp );

if ( bFinished )
{
break;
}
else
{
if ( strRemain.GetLength() - 1 != iFind )
{
strRemain = strRemain.Right( strRemain.GetLength() - iFind - 1 );
}
else
{
strRemain = _T( "" );
}
}
}

return iCount;
}

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧