初步学习正则表达式

目录

分隔符

字符类和类型

重复

子表达式

子表达式计数

定位到字符串的开始或末尾

分支

匹配特殊字符

特殊字符含义


分隔符

  • 正则表达式必须包含在一对分隔符中。可以选择任何非字母,数字,"\" 或空格的字符作为分隔符。字符串的开始和结束必须有匹配的分隔符。
  • 最常用的分隔符是"/"。 如匹配"shop": /shop/
  • 如果要在正则表达式中匹配字符"/",需要使用"\"来转义"/"。如匹配"http://": /http:\/\//

字符类和类型

  • 可以用字符"."作为匹配除换行符(\n)之外任何字符的通配符。如:/.at/ 可以匹配“cat”,“sat”,“mat”等,通常这种通配符的匹配适用于操作系统的文件名匹配。
  • /[a-z]at/ 表示第一个字符是a到z之间的字符,后面匹配at;任何[ ]中的内容都是一个字符类,也就是说方括号内的表达式只匹配一个字符。
  • /[a-zA-Z]/ 表示匹配大小写的任何字符。
  • /[^a-z]/ 用来匹配任何不在a和z之间的字符。当 ^ 符号在 [ ] 中时,表示否的意思。

重复

  • "*"表示这个模式可以重复出现0次或多次。
  • "+"表示这个模式可以重复出现1次或多次。
  • "?" 表示这个模式可以重复出现1次或0次。
  • /[[:alnum:]]+/ 表示至少有一个字母字符。

子表达式

  • 通常,可以将一个表达式分隔为几个子表达式,如:/(very)*large/ 表示very可以重复出现0次或多次,可以匹配“large”,“very large”,“very very large”等。

子表达式计数

  • { } 中使用数字表达式来指定内容允许重复的次数。
  • /(very){3}/ 表示very重复3次
  • /(very){1,3}/ 表示very重复1~3次
  • /(very){2, }/ 表示最少要重复2次

定位到字符串的开始或末尾

  • ^ 用于正则表达式的开始,表示子字符串必须出现在被搜索字符串的开始处。
  • $ 用于正则表达式的末尾,表示子字符串必须出现在被搜索字符串的末尾。
  • /^bob/ 表示要在开始处匹配 bob - /com$/ 表示要以com结束

分支

  • | 在正则表达式中表示模式选择。
  • /com|edu|net/ 表示匹配com 或edu 或net

匹配特殊字符

  • 如果要匹配一个特殊字符,如“.”,“{”,“$”,就必须在它们前面加一个反斜杠“\”。
  • 如果要匹配一个反斜杠“\”,则必须用两个反斜杠“\\”来表示。
  • 在php中,必须使用单引号来引用正则表达式模式。使用双引号引用的正则表达式将带来一些不必要的复杂性。

特殊字符含义

在PCRE正则表达式中,用于方括号外面的特殊字符
字符 意义 字符 意义
\ 转义字符 ) 子模式的结束
^ 在字符串开始匹配 * 重复0次或更多次
$ 在字符串末尾匹配 + 重复一次或更多次
. 匹配除换行符\n之外的字符 { 最小/最大量记号的开始
| 选择分支的开始(或) } 最小/最大量记号的结束
( 子模式的开始 ? 标记一个子模式为可选的
在PCRE正则表达式中,用于方括号里面的特殊字符
字符 意义
\ 转义字符
^ 非,仅用在开始位置
- 用于指定字符范

原文地址:https://www.cnblogs.com/woods1815/p/9602023.html

时间: 2024-08-05 18:33:40

初步学习正则表达式的相关文章

LinQ的初步学习与总结

嘿嘿,说起来ORM和LinQ,就感觉离我好遥远的,在学校是没有学习的,所以总感觉学习了LinQ就是大神,现在嘛,终于也体会一点,感觉LinQ只是初步学习,没有太难,当然以后使用在项目中就没有这样的简单啦,下面就全面的总结一下LinQ的其中一部分,LinQ有三部分:LinQ TO Object:LinQ TO SQL ;LinQ TO XML.而在这里我先来总结一下LinQ TO Object的学习吧 一.初步认识LinQ to Object static void Main(string[] a

Javascript学习-------正则表达式

Javascript RegExp对象(正则表达式对象): RegExp:是一种模式. 当你要检索某个文本时,可以使用这种模式来描述要检索的内容. 创建RegExp对象: 使用RegExp的显式构造函数创建:             new RegExp("pattern"[,flags])        使用RegExp的隐式构造函数创建:             /pattern/[flags] 解释:pattern是要使用的正则表达式模式文本 flags设置正则表达式的标志信息

Jquery Easy UI初步学习(二)datagrid的使用

第一篇学的是做一个管理的外框,接着就是数据datagrid绑定了,这里我用asp.net mvc3来做的,主要就是熟悉属性.方法. 打开easyui的demo 就可以看到如下一段代码: 和上篇一样class="easyui-datagrid", data-options="...",这是一样的,其他我在网上查了查,并做了整理 DataGrid 属性 参数名 类型 描述 默认值 title string Datagrid面板的标题 null iconCls strin

轻松学习正则表达式

转载自:http://www.cnblogs.com/jamesping/articles/2252675.html 装载自:http://www.cnblogs.com/sxwgf/archive/2011/11/17/2252076.html 继续把我在个人博客上新翻译的文章投递到博客园来,这次是有关正则表达式的,很基础,主要是让读者把握住正则表达式中的3种括号的用法,用这3种括号几乎可以涵盖所有的正则式. 写在最前面 前两天我从CodeProject上翻译了一篇关于Javascript的文

初步学习C++:C++的基本概念

开始学习C++,先从最基本的概念开始,让自己有一个系统的知识概念. 1.对象: 在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体.对象可以认为是:数据+操作(对象所能完成的操作表示它的动态行为,也成为方法). 2.类: 在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,类是对具有相同数据结构和相同操作的一类对象的描述. 3.消息: 在面向对象程序设计中,一个对象向另一个对象发出的请求被称为"消息".当对象接收到发向它的

Java深度历险(三) Maven初步学习

这几天接触这个词,很多遍了,只是浅显的体会到它在GXPT中的好处,功能之强大,又通过网络查询了资料进一步的认识学习了,和大家分享. Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 在gxpt中的体现 1. 父子关系 一个多模块项目通过一个父POM 引用一个或多个子模块来定义. a. 在父目录中分别创建子项目 b. 父项目,通过以下配置,将子项目关联: 如下: <span style="font-size:18px;"

推荐学习正则表达式的教程

推荐学习正则表达式的教程:看着感觉不错,适合入门和工作以后参考之用 正则表达式30分钟入门教程 推荐学习正则表达式的教程,布布扣,bubuko.com

2016-8-4学习正则表达式

2016-8-4学习正则表达式 编程 正则 第二章 简单的模式匹配 正则表达式唯一的用途就是在文本中匹配和寻找模式 匹配字符串字面值的方法就是使用普通的字符. 第三章 边界 断言标记边界,但是并不耗用字符. 第四章 选择,分组和后向引用 在两种或更多可选模式中选择一个 创建子模式 捕获一个分组以便之后进行后向引用 对组合的模式 使用某项操作(如量词) 使用非捕获分组 原子分组(高级) 第5章 字符组 字符组也被称为 方括号表达式 第6章 匹配 Unicode 和 其他字符 表示超过10万个字符的

初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助

初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: 1 var fs = require('fs'); 2 var tel = [ 3 "1/2/4/6/a.tpl.html", 4 "1/2/4/7/9/c.tpl.html", 5 "1/3/5/8/b.tpl.html"]; 6 var demo = function (mulu)