vc6.0下 使用boost regex正则表达式匹配带中文的任意字符

原创 2013年12月05日 20:15:05

源代码:

boost::cmatch result2;

// 特殊字符".""\"从字符串转为正则表达式需要加"\",在正则表达式中要单纯的表示反斜杠字符页需要加"\",所以要匹配".\ "应该写为"\\.\\\\"
 CString csReg = "\\.\\\\(\\S+)\\.[tsp|enx|ts|tc|tsw]";  // 匹配 以  .\  开头 .tsp|.enx|.ts|.tc|.tsw 结尾的任意字符串,并获取匹配到的字符串
 boost::regex regText;
 regText = csReg;
 string sToMatch((LPCTSTR)csSourceStr);
 if ( !boost::regex_search(sToMatch,result2,regText))
 {
  return FALSE;
  }

  //下标从1开始, result2[0] 不正确
 for (size_t i = 1; i < result2.size(); ++i)  
 {         
  if (result2[i].matched)

   {
   std::string strIs(result2[i].first,result2[i].second);
   csDestStr = strIs.c_str();
  }
 }
 return TRUE;

 

测试代码未进行宽字符转换:

BOOL CSelectTestInstance::regexMatchStr(const CString &csSourceStr,CString &csDestStr)
{
 boost::cmatch result2;
 boost::regex regText("[A-Za-z0-9_\x80-\xFF]+");//如果匹配的字符串为./硬测自动化/自动化.tc ,匹配的结果只能匹配到“硬测自动化”,不知为何

 string sToMatch((LPCTSTR)csSourceStr);//csSourceStr = ./硬测自动化_A_1.tc
 if ( !boost::regex_search(sToMatch,result2,regText))
 {
     return FALSE;
  }
 for (size_t i = 0; i < result2.size(); ++i)  
 {         
  if (result2[i].matched)
   {
   std::string strIs(result2[i].first,result2[i].second);
   csDestStr = strIs.c_str();
   }
 }
 return TRUE;
}

VC6.0下配置boost库使用正则表达式

2010年4月21日,装机后再次按照本文(=======线以下部分)方法编译 regex 库时,当执行到 nmake -fvc6.mak 时出现下面的两行信息后,推出编译过程 Hint: set...
  • jwk000
  • jwk000
  • 2011年11月09日 16:30
  • 357

在VS2008中使用正则表达式库 Boost.Regex

在VS2008中要使用Boost.Regex正则表达式库,首先需要在编译器中添加Boost的lib目录。...

boost中关于正则表达式在vs2008不能匹配中文的问题

最近想从HTML中提取需要的信息,找的那些HTML解释器没有一个好用,就直接用正则表达式来提取了。因为网页中含有中文,所以我都是转换成宽字符再用regex库或者xpressive库的。但是总是出现漏匹...
  • neofung
  • neofung
  • 2011年10月13日 10:19
  • 1376

Boost_Regex_C_正则表达式快速入门.pdf

  • 2009年10月13日 09:54
  • 1.94MB
  • 下载

匹配中文字符的正则表达式: [/u4e00-/u9fa5]

匹配双字节字符(包括汉字在内):[^x00-xff]   评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)   匹配空白行的正则表达式:ns*r   评注:可以用来删除空白...

匹配中文字符的正则表达式

这里是几个主要非英文语系字符范围(google上找到的): 2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字...

匹配中文字符的正则表达式: [/u4e00-/u9fa5]

原文:http://blog.sunmast.com/Sunmast/archive/2004/07/30/799.aspx 这里是几个主要非英文语系字符范围(google上找到的): 2...

匹配中文字符的正则表达式: [/u4e00-/u9fa5]

这里是几个主要非英文语系字符范围(google上找到的): 2E80~33FFh:中日韩符号区。收容康熙字典部首、中日韩辅助部首、注音符号、日本假名、韩文音符,中日韩的符号、标点、带圈或带括符文数字...
  • ye1992
  • ye1992
  • 2014年05月08日 10:45
  • 23753

匹配中文字符的正则表达式

From: http://blog.sina.com.cn/s/blog_4540c3630100aq01.html 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字...

正则表达式匹配任意字符

写代码的时候需要用到正则表达式匹配包含换行符(\n)在内的任意字符,然后就上菜鸟教程查了下正则表达式的写法,看到下面的内容: 菜鸟教程相应地址使用下面代码 //当不存在换行\n...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vc6.0下 使用boost regex正则表达式匹配带中文的任意字符
举报原因:
原因补充:

(最多只允许输入30个字)