正则表达式 小结 经典解决方案[1]
目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。
正则表达式是用来匹配一类字符串的一种模式
正则表达式的功能:字符串的查找、替换以及分割
应用领域广泛
Perl、PHP、Java、C++、C#、Python、 Xpath、.Net、
JavaScript、Jscript
Oracle、Mysql、Unix、Linux
正则语法:
正则表达式主要组成:
1 原子(普通字符,如英文字符)
2 元字符(有特殊功用的字符)
3 模式修正字符(对正则表达式语义的修正)
一个正则表达式中至少包含一个原子。
===========华丽的分割线=======================
1 原子
原子是组成正则表达式的基本单位,在分析正则表达式时,应作为一个整体。
原子字符包括所有的英文字母、数字、标点符号以及其他一些符号。原子也包括以下内容。
单个字符、数字,如a~z,A~Z,0~9。
模式单元,如(ABC)可以理解为由多个原子组成的大的原子。
原子表,如 [ABC]。
重新使用的模式单元,如:\\1
普通转义字符,如:\d, \D, \w
转义元字符,如:\*,\.
2 元字符
元字符是用于构造规则表达式的具有特殊含义的字符。如果要在正则表达式中包含元字符本身,必须在其前加上”\”进行转义
元字符 说明
. 匹配除换行之外的任何一个字符
* 0次、1次或多次匹配其前的原子
+ 1次或多次匹配其前的原子
? 0次或1次匹配其前的原子
| 匹配两个或多个选择
^ 或 \A 匹配字符串串首的原子
$ 或 \Z 匹配字符串串尾的原子
\b 匹配单词的边界
\B 匹配除单词边界以外的部分
[] 匹配方括号中的任一原子
[^xyz] 匹配除方括号中的原子外的任何字符
{m} 表示其前原子恰好出现m次
{m,n} 表示其前原子至少出现m次,至少出现n次(n>m)
{m,} 表示其前原子出现不少于m次
() 整体表示一个原子
3 模式修正字符
在PCRE表达式中的最后一个分隔符/后,可以添加模式修正符,扩展了正则表达式在字符匹配、替换操作时的某些功能,修正增强了正则表达式的处理能力。模式修正符一般标记于整个模式之外,并且可以组合使用,如“/apple/i”、“/cat|dog/uis”等。
模式修正符 说明
i -可同时匹配大小写字母
s -将字符串视为单行,换行符做普通字符看待,使“.”匹配任何字符
m -将字符串视为多行
x -模式中的空白忽略不计
S - 当一个模式将被使用若干次时,先对其进行分析
U -匹配到最近的字符串
e -将替换的字符串作为表达使用
============================华丽分割线==========================
--------------------------------------------------------------------------------
\w 匹配一个英文字母、数字或下划线;等价于[0-9a-zA-Z_]
\W 匹配除英文字母、数字和下划线以外任何一个字符;等价于[^0-9a-zA-Z_]
\S 匹配除空白字符以外任何一个字符;等价于[^\f\n\r\t\v]
例如,在字符串“Tom and Jerry chased each other in the house until tom’s uncel come in”中
元字符“^”或“\A” 置于字符串的开始确保模式匹配出现在字符串首端;
元字符“$”或“\Z” 置于字符串的结束,确保模式匹配出现字符串尾端。
如果不加边界限制元字符,将获得更多的匹配结果。
/^Tom$/精确匹配 /Tom/模糊匹配
例如:在字符串“This island is a beautiful land”中
元字符“\b”对单词的边界进行匹配;
/\bis\b/ 匹配单词“is”,不匹配“This”和“island”。
/\bis/ 匹配单词“is”和“island”中的“is”,不匹配“This”
元字符“\B”对除单词边界以外的部分进行匹配。
/\Bis\B/ 将明确的指示不与单词的左、右边界匹配,只匹配单词 的内部。所以在这个例子中没有结果。
/\Bis/ 匹配单词“This”中的“is”
转载于:https://www.cnblogs.com/zcy_soft/archive/2011/08/06/2129488.html
正则表达式 小结 经典解决方案[1]相关推荐
- js php 正则差别,正则表达式(括号)、[中括号]、{大括号}的区别小结,正则表达式小结...
正则表达式(括号).[中括号].{大括号}的区别小结,正则表达式小结 正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*) ...
- [转]FINDSTR正则表达式小结
前言:最近写了一个bat用于快速编译swf至目标目录,想利用FINDSTR命令通过匹配目标目录名称,匹配数量大概600多个,发现匹配耗时比较久,大概花费10余秒,因此还是放弃字符匹配,乖乖拼出全称来定 ...
- Python 正则表达式小结1
[声明]:本文参考了白夜黑雨老师的网页讲解.如有侵权,请与我联系!!! Python 正则表达式小结1 1. 正则表达式验证 2. 特殊元字符及含义 3 匹配某种字符类型 4. 正则表达式举例 大收藏 ...
- 免费资源:原来超人rman也会哭+4031经典解决方案
2014年9月27日-技术沙龙<4031经典解决方案>-北京-免费,原文地址: http://cuug.com.cn/html/activityinfor_283_283_1084.htm ...
- FINDSTR正则表达式小结
前言:最近写了一个bat用于快速编译swf至目标目录,想利用FINDSTR命令通过匹配目标目录名称,匹配数量大概600多个,发现匹配耗时比较久,大概花费10余秒,因此还是放弃字符匹配,乖乖拼出全称来定 ...
- javascript正则表达式小结
总结了一下javascript正则表达式的内容.表格形式,一目了然.辅以Example图形解释. 一.元字符 二.反义字符 三.转义字符 四.重复匹配 五.分组/捕获 六.贪婪与惰性 七.修饰符 ex ...
- C# 正则表达式小结
只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n}$". 只能输入至少n位的数字:"^\d{n,}$". 只能输入m~ ...
- 【转】C#正则表达式小结
只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n}$". 只能输入至少n位的数字:"^\d{n,}$". 只能输入m~ ...
- python正则表达式案例_Python正则表达式使用经典实例
regex=ur"" #正则表达式 match = re.search(regex, subject) if match: # match start: match.start() ...
最新文章
- szu cf套题训练Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3)A~D题解报告
- 使用poi进行数据的导出Demo
- Day11多态部分-5
- Java笔试题库之编程题库 总共30道编程题,掌握了就可以应付中级以内Java面试题
- 一个小老板从小公司创业开始做起的过程记录
- 使用代码片段的正确姿势,打造高效的vscode开发环境
- @mapperscan注解_Spring的@Import注解详解
- 【学习笔记】网络层:应用模型、DNS系统、文件传输协议FTP
- 函数节流之debounce
- mfc 更新服务器文件,MFC程序版本自动升级更新
- 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。
- WebSocket 解决javascript跨域问题一剂良药
- GPS/BDS:LAC区域码和CELLID移动基站ID
- 大屏拍照游戏神器来袭,OPPO R11 Plus今日首销
- cpuz测试分数天梯图_最新手机处理器天梯图出炉:第一实至名归,你手机处理器排名高吗...
- 谭浩强 C程序设计(第五版)
- Boost库异步IO
- 笔记本一接上HDMI转VGA转换器就黑屏,无法操作连接显示器
- 微信订阅号利用订阅号助手发布信息
- 大学计算机专业用ipad pro够用吗,苹果iPad Pro上很合适学生党的几个专业App
热门文章
- java32位无符号数_用C语言解释32位无符号长单精度IEEE-754浮点数
- mysql peferences_MySQL初次实践
- android使用桢布局,Android性能优化UI篇
- C语言取字节的第n二进制,学C语言的看过来,最完整进制转换、整数和小数内存存储模型...
- 使用命令创建mysql_用命令创建MySQL数据库
- android 宏替换_android 模拟宏定义,实现Debug amp; Release 模式-一团网
- Centos 7 64位 minimal 最小化安装的系统中静默安装oracle 11g r2(无图形化安装)
- mysql profile 查谒_MYSQL查询优化:profile功能
- gamma分布python代码_Python sympy.stats.NormalGamma()用法及代码示例
- 设计一个名为complex的类来表示复数_天线波束设计