正则表达式
来源:互联网 发布:宝山区行知外国语学校 编辑:程序博客网 时间:2024/06/06 07:12
前言
正则表达式,是用一个表达式去匹配一个已知的字符串,将按照表达式的方式查找出字符串,然后可以进行替换等操作
1,用途
字符串匹配(字符匹配),更应该叫做字符匹配,因为是一个字符一个字符去匹配,其匹配的结果:能匹配或者不能
字符串查找,是建立在字符串匹配的前提下
字符串替换,是建立在字符串查找的前提下
2,meta character
. 代表1个字符
? 0个或1个
* 0个或多个
+ 1个或多个
{n} 出现n次
{n,}至少n次
{n,m}大于n小于m
/d 1个数字[0-9]
/D 1个非数字[^0-9]
/s 1个空白字符[ /t/n/x0b/f/r]
/S 1个非空白字符[^/s]
/w 1个构成单词的字符[a-zA-Z_0-9]
/W 1个非构成单词的字符[^/w]
3,范围
[abc]匹配中括号中abc的一个字符
[^abc]匹配除了abc的一个字符
[a-zA-Z]匹配a-z或A-Z中的一个字符
[A-Z&&[RFG]]匹配A-Z中并且是RFG三个字母中的一个字符
4,bound边界匹配:指开头和结尾
POSIX是unix的一套标准,如果程序符合POSIX标准,都能在所有的UNIX上运行
^ 一行的开头
$ 一行的结尾
/b 一个单词的边界
/B 非单词边界[^/b]
5,group分组
用途:在匹配的结果中,可以用来指输出某些部分
用小括号可以用来分组,分组的编号是从左往右数左小括号,数到几,这个小括号就是第几组
6,quantilifiers修饰符
greedy quantilifilers 贪婪的
reluctant quantilifilers 不情愿的
7,non-capturing非捕获
(?)小括号中以?开头的组,叫做非捕获组
例如regex = ".{3}(?=a)",如果字符串为444a66b,匹配的字符串为444,而不是444a
8,示例
筛选邮箱的正则表达式:
([A-Za-z0-9_-]+(/./w+)*@(/w+/.)+/w{2,3})
筛选网址的正则表达式:
http://.([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?
筛选网页中的url的正则表达式:
<a href=([^>]+)>([^<]+)</a>
9,如何在vc++6.0环境下应用正则表达式?
vc++6.0本身不支持正则表达式(没有相应的库),boost库对正则表达式有良好的支持,因此vc++6.0下需要安装boost库后就能使用正则表达式,关于boost库的相关内容,请访问本人的另一篇文章“boost库”
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 程序员创业失败的原因
- 怎么样把xml Document对象转换成字符串
- 我终于有了CSDN博客啦!!!!!!!!!!!
- Dreamwever需要掌握的快捷键
- 试验网站#1搜索引擎优化收录情况记录(断续运行)2007-12-4
- 正则表达式
- ERP系统应收帐款调研问卷
- 试验网站#3搜索引擎优化收录情况记录2007-12-4
- ERP系统应付帐款调研问卷
- KB904942解决XP+IE7下不能用MS outlook2003收Hotmail邮件的故障
- 制造系统调查问答卷
- 采购系统调查问答卷
- SVG学习笔记(1)
- 库存系统调查问答卷