C++中正则表达式使用,正则表达式语法以及常用正则表达式大全
来源:互联网 发布:网络信息安全涉及 编辑:程序博客网 时间:2024/04/30 12:39
vc++2010里正式对正则表达式进行支持,这无疑是vc++2010的一大亮点,给VS下c++开发者带来了许多方便。通过自己的使用,深感正则表达式的强大功能。所以总结一些简单的介绍,并与大家共同分享。
一,什么是正则表达式:
正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。是用来检验和操作字符串的强大工具。简单的理解正则表达式可以认为是一种特殊的验证字符串。比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。
二,正则表达式可以用来做什么?
正则表达式可以用来:
(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。
(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。
(3)用来替换,比普通的替换更强大。
三,简介及基本语法:
先看网上一个经典的例子:
#include "stdafx.h"
#include <cstdlib>
#include <stdlib.h>
#include <boost/regex.hpp>
#include <string>
#include <iostream>
using namespace std;
using namespace boost;
regex expression("^select ([a-zA-Z]*) from ([a-zA-Z]*)");
int main(int argc, char* argv[])
{
std::string in;
cmatch what;
cout << "enter test string" << endl;
getline(cin,in);
if(regex_match(in.c_str(), what, expression))
{
for(int i=0;i<what.size();i++)
cout<<"str :"<<what[i].str()<<endl;
}
else
{
cout<<"Error Input"<<endl;
}
return 0;
}
结果
输入:select name from table
输出:str:select name from table
str:name
str:table
按照我们的要求,字符串被匹配挑出来了。这在处理大量规则的文本格式的时候很有用,因为它很灵活,一通百通。
看完例子,想毕大家已经对正则表达式有了一个感性的认识。那么下面介绍正则表达式的一些基本语法,在正则表达式中拥有一套自己的语法规则,常见语法包括;字符匹配、重复匹配、字符定位、转义匹配和其他高级语法(字符分组、字符替换和字符决策)等:
字符匹配语法:
字符语法
语法解释
语法例子
//d
匹配数字(0~9)
‘//d’匹配8,不匹配12;
//D
匹配非数字
‘//D’匹配c,不匹配3;
//w
匹配任意单字符
‘//w//w’ 匹配A3,不匹配@3;
//W
匹配非单字符
‘//W’匹配@,不匹配c;
//s
匹配空白字符
‘//d//s//d’匹配3 d,不匹配abc;
//S
匹配非空字符
‘//S//S//S’匹配A#4,不匹配3 d;
.
匹配任意字符
‘....’匹配A$ 5,不匹配换行;
%0- C++中正则表达式使用,正则表达式语法以及常用正则表达式大全
- 正则表达式语法以及常用
- 正则表达式语法大全
- 正则表达式语法大全
- 正则表达式语法大全
- 正则表达式语法大全
- 正则表达式语法大全
- 正则表达式语法大全
- 正则表达式语法大全
- 正则表达式语法大全
- 正则表达式语法 和常用正则表达式大全
- 常用正则表达式大全 -- 正则表达式基本语法
- 正则大全 常用正则表达式
- 常用正则表达式语法
- 常用正则表达式语法
- 常用正则表达式语法
- 常用正则表达式语法
- 常用正则表达式大全
- Tslib-1.0移植
- 很好的技术文件集合[转]
- Java SE 5服务周期已终结
- 产品管理-产品规划工作流程与工作标准
- 度过有意义的生命
- C++中正则表达式使用,正则表达式语法以及常用正则表达式大全
- C#常用正则
- Silverlight概述
- 用static声明局部变量
- 老大语录
- C语言宏定义
- 远图(FarMap)花絮
- XHTML Tags
- 关于 Progress Bar 控件的使用