9.Boost之正则regex



1正则表达式,案例1(如果使用的boost库是64位的,要把VS设置成支持64位的,这样的化,才可以运行通过)

#include
<boost/regex.hpp>

#include
<locale>

#include
<iostream>

#include
<string>

 

using
namespace
std;

 

void
main()

{

   
//设置语言环境为:English

   
std::locale::global(std::locale("English"));

   
string 
str =
"chinaen8Glish";

   
boost::regex
expr("\\w+\\d\\u\\w+");//d代表数字,

   
//匹配就是1,不匹配就是0

   
cout <<
boost::regex_match(str,
expr) <<
endl;

 

   
cin.get();

   
//运行结果为:1

}

2.通过正则取出匹配到的每部分

#include
<boost/regex.hpp>

#include
<locale>

#include
<iostream>

#include
<string>

 

using
namespace
std;

 

void
main()

{

   
std::locale::global(std::locale("English"));

   
string
str =
"chinaen8Glish9abv";

   
//d代表数字

   
boost::regex
expr("(\\w+)\\d(\\w+)");

   
boost::smatch
what;

   
//按照表达式检索

   
if (boost::regex_search(str,
what,
expr))

   
{

       
cout <<
what[0] <<
endl;
//这里是字符串本身

       
cout <<
what[1] <<
endl;
//这里截取的字符串的第一部分

       
cout <<
what[2] <<
endl;
//这里截取的字符串的第二部分

   
}

   
else

   
{

       
cout <<
"检索失败";

   
}

   
cin.get();

}

运行结果:

3.通过正则表达式将正则中的数字编成指定的字符串。

#include
<boost/regex.hpp>

#include
<locale>

#include
<iostream>

#include
<string>

 

using
namespace
std;

 

void
main()

{

   
string 
str =
"chinaen8 
Glish9abv";

   
boost::regex
expr("\\d");//d代表数字,

   
string 
kongge =
"______";

   
std::cout
<< boost::regex_replace(str,
expr,
kongge) <<
endl;

   
cin.get();

}

运行结果:

时间: 2024-10-21 18:50:43

9.Boost之正则regex的相关文章

正则regex的posix标准,gnu扩展以及PC兼容性

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. 给定一个正则表达式和另一个字符串,我们可以达到如下的目的: 1. 给定的字符串是否符合正则表达式的过滤逻辑(称作"匹配"): 2. 可以通过正则表达式,从字符串中获取我们想要的特定部分. 正则表达式的特点是: 1. 灵活性.逻辑性和功能性非常的强: 2. 可以迅速地用极简单的方式

Boost学习之正则表达式--regex

来源:http://blog.chinaunix.net/uid-21222282-id-1829265.html 来源:http://www.cnblogs.com/undermoon/archive/2009/11/30/1613508.html 来源:http://blog.csdn.net/guyulongcs/article/details/7838753 来源:http://blog.csdn.net/leonardwang/article/details/6035171 boost

C++ boost正则表达式用法

什么是正则表达式?正则表达式是一种用来描述一定数量文本的模式.Regex代表Regular Express. 如果您不知道什么是正则表达式,请看这篇文章:深入浅出之正则表达式 有了正则表达式的基础,问题是如何使用.我们以boost::regex来说 先看一个网上经典的例子. #include "stdafx.h" #include <cstdlib> #include <stdlib.h> #include <boost/regex.hpp> #in

集思广义支持中文的正则表达式库

初衷--我想说的 大家好! 我所知道的正则表达式库有:boost的,GNU的,VC7带的ATL中的和微软发布的greta.我使用过后三种,greta使用时间最短(才两天). 现在我来说说我的感受 GNU的正则表达式根本就不支持多字节码,设置连UNICODE都不支持,在parse阶段就会非法操作.在软件全球化的今天,实在不是一个好现象.优点是支持的语法完备. ATL中的正则表达式不完全支持多字节码,可以完善的支持UNICODE.不过,此正则表达式书写非常清晰,没有用到STL里面任何高深的东西,也没

java正则表达式验证工具类_java

分享一个用正则表达式校验电话号码.身份证号.日期格式.URL.Email等等格式的工具类 复制代码 代码如下: package com.eabax.util; import java.util.regex.Matcher;  import java.util.regex.Pattern;  /**  * 验证工具类  * @author admin  *  */ public class Validation {      //------------------常量定义      /**   

Linux基础命令介绍八:文本分析awk

awk是一种模式扫描和处理语言,在对数据进行分析处理时,是十分强大的工具. awk [options] 'pattern {action}' file...  awk的工作过程是这样的:按行读取输入(标准输入或文件),对于符合模式pattern的行,执行action.当pattern省略时表示匹配任何字符串;当action省略时表示执行'{print}';它们不可以同时省略. 每一行输入,对awk来说都是一条记录(record),awk使用$0来引用当前记录: [root@centos7 ~]#

C#同时输入和处理多个数,并输出多个数的状态

问题描述 判断每个输入的数是否可被3,5和7整除,并将整除状态输出.要求(2)对每个输入数,分别输出对3,5和7的整除状态:(3)能实现多次输入输出,最好能有一些输入提示:(4)亦可同时输入和处理多个数,并输出多个数的整除状态.(5)考虑使用switch或if.代码如下,不知道该怎样同时处理多个数,希望得到大神指点usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Th

根据XML配置规则导入Excel数据(三)准备验证工具类

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dba10g.blog.51cto.com/764602/756534 没什么好说的,提供正则表达式校验.提供数据校验.当解析Excel,将Cell的值填充到Bean属性中,提供支持. ValidateUtil.java package com.ivfly.xlsbean;  import java.lang.reflect.InvocationTargetException; 

Java常用正则表达式验证工具类RegexUtils.java_java

正则表达式常常用来验证各种表单,Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合. 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 6. URL 7. 是否为数字 8. 是否为中文 9. 身份证 10. 域名 11. IP .... 常用验证应有尽有! 这的确是您从事 web 开发,服务器端表单验证之良品!你,值得拥有 ^_^ /* * Copyright 2012-2013 The Haohui Network Corporation */ pack