正则表达式知识点整理

定位符    
\b 匹配单词的开始或结束  
\B 匹配不是单词开头或结束的位置  
^ 匹配字符串的开始  
$ 匹配字符串的结束  
内容匹配    
\w 匹配字母或数字或下划线或汉字  
\W 匹配非字母或数字或下划线或汉字的字符  
\d 匹配数字  
\D 匹配非数字  
\s 匹配任意的空白符  
\S 匹配任何非空白字符  
. 匹配除换行符以外的任意字符  
\f 匹配一个换页符  
\n 匹配一个换行符  
\r 匹配一个回车符  
\t 匹配一个制表符  
\v 匹配一个垂直制表符  
数量匹配    
* 重复零次或更多次  
重复零次或一次  
+ 重复一次或更多次  
{N} 重复N次  
{N,} 重复N次,或更多  
{N,M} 重复N到M次  
可选项匹配    
[ABC] 匹配[]中任何一个字符  
[0-9A-Z] 匹配0-9或A-Z中任何一个字符  
[^0-9] 匹配0-9以外任何一个字符  
分支条件    
| 分支条件(或逻辑) 使用分枝条件时,要注意各个条件的顺序。逻辑较为严格匹配表达式应该放在前面。
匹配时,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了。
分组    
() 可以用小括号来指定子表达式(分组) 对于子表达式可以去统一制定循环次数
向后引用    
(exp) 匹配exp,并捕获文本到自动命名的组里 引用方式:\index  index 为从左到右分配的组号
(?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?‘name‘exp) \K<nmae>
(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号  
零宽断言    
(?=exp) 匹配exp前面的位置[描述 exp与前面部分的关系] 例如:\b\w+(?=ing\b) 
先找到ing\b匹配的位置,然后再以ing\b为结尾判断\b\w+匹配的内容
(?<=exp) 匹配exp后面的位置[描述 exp与后面部分的关系] 例如:(?<=\bre)\w+\b 
先找到\bre匹配的位置,然后再以\bre为开头判断\w+\b匹配的内容
负向零宽断言    
(?!exp) 匹配后面跟的不是exp的位置[描述 exp与前面部分的关系] 例如:\d{3}(?!\d) 先找到\d{3}匹配的字符串,然后判断它后面的内容不匹配\d
(?<!exp) 匹配前面不是exp的位置[描述 exp与后面部分的关系] 例如:(?<![a-z])\d{7} 先找到\d{7}匹配的字符串,然后判断它前面的内容不匹配[a-z]
注释    
(?#注释文本) 括号内的内容为注释  
#注释文本 当前这一行,#之后的内容全部为注释  
贪婪与懒惰    
贪婪匹配:正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。
懒惰匹配:就是匹配尽可能少的字符。只要在它后面加上一个问号?就可以转换  
匹配优先级:正则表达式有另一条规则,比懒惰/贪婪规则的优先级更高:最先开始的匹配拥有最高的优先权
*? 重复任意次,但尽可能少重复  
+? 重复1次或更多次,但尽可能少重复  
?? 重复0次或1次,但尽可能少重复  
{n,m}? 重复n到m次,但尽可能少重复  
{n,}? 重复n次以上,但尽可能少重复  
处理选项(.net支持)    
IgnoreCase(忽略大小写) 匹配时不区分大小写。  
Multiline(多行模式) 更改^和$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.)  
Singleline(单行模式) 更改.的含义,使它与每一个字符匹配(包括换行符\n)。  
IgnorePatternWhitespace(忽略空白) 忽略表达式中的非转义空白并启用由#标记的注释。  
ExplicitCapture(显式捕获) 仅捕获已被显式命名的组。  
如:Regex
regex = new Regex(@"\ba\w{6}\b", RegexOptions.IgnoreCase);
 
注:多行模式和单行模式可同时启用,这两个选项之间没有任何关系,除了它们的名字比较相似。    
时间: 2024-10-13 06:29:19

正则表达式知识点整理的相关文章

JavaScript正则表达式知识点整理

1  正则表达式 使用单个字符串来描述.匹配一系列符号某个句法规则的字符串,可以简单理解为按照某种规则去匹配符合条件的字符串. Ps:https://regexper.com/  可帮助理解正则表达式,正则表达式工具 2  regexp对象 JavaScript通过内置对象RegExp支持正则表达式,有两种方法实例化RegExp对象:字面量.构造函数 3  预定义类 .         等价于 [^\r\n]          即除了回车符和换行符之外的所有字符 \d        等价于[0-

JS正则表达式大全(整理详细且实用)

JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*".

数据库设计教程系列——相关知识点整理

一.教程概述 此数据库设计教程是笔者参考网上资料.相关书籍,以及加上自己多年做数据库设计相关工作的经验积累写就. 数据库设计教程在网上已经有大量类似的资料,并且该领域有不少专业书籍,珠玉在前,心有戚戚. 但这作为唯心六艺之一,我还是希望能够在整理知识的同时,写出自己的一些内容,如果能够对读者 有所帮助,那就最好不过了,谢谢. 本教程主要基于关系型数据库进行讲解,对于维度数据库也会视情况有所涉猎. 下面是整个教程涉及的知识点整理,在撰写教程的过程中,如果有改动,也会调整更新此图. 二.知识点整理

asp.net mvc 3.0 知识点整理 ----- (2).Controller中几种Action返回类型对比

通过学习,我们可以发现,在Controller中提供了很多不同的Action返回类型.那么具体他们是有什么作用呢?它们的用法和区别是什么呢?通过资料书上的介绍和网上资料的查询,这里就来给大家列举和大致的概括下. (1). ActionResult(base):最基本的Action类型,返回其他类型都可以写ActionResult. (2). ContentResult:返回ContentResult用户定义的内容类型. public ActionResult Content() { return

【知识点整理】Oracle中NOLOGGING、APPEND、ARCHIVE和PARALLEL下,REDO、UNDO和执行速度的比较

[知识点整理]Oracle中NOLOGGING.APPEND.ARCHIVE和PARALLEL下,REDO.UNDO和执行速度的比较 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 系统和会话级别的REDO和UNDO量的查询 ② NOLOGGING.APPEND.ARCHIVE和PARALLEL下,REDO.UNDO和执行速度的比较(重点)   Tips: ① 本文

【Android 面试基础知识点整理】

针对Android面试中常见的一些知识点整理,Max 只是个搬运工,感谢本文中引用文章的各位作者,给大家分享了这么多优秀文章,对于其中的解析,是原作者个人见解,有错误和不准确的地方,也请大家积极指正. 本文将持续更新,同时我也将其放在Github上:Point-of-Android 同时可以看Max的个人博客:海上钢琴师 Android中的异步任务机制 Android中AsyncTak的使用与源码分析 http://blog.csdn.net/bboyfeiyu/article/details/

·DP」知识点整理

一.最长公共子序列(LCS Longest Common  Subsequence) 第一,先说区别,最长公共子串和最长公共子序列是不一样的. 最长公共子串不许是连续的,而最长公共子序列可以是不联系的. 网络上解释的子序列: 一个字符串S,去掉零个或者多个元素所剩下的子串称为S的子序列.最长公共子序列就是寻找两个给定序列的子序列,该子序列在两个序列中以相同的顺序出现,但是不必要是连续的. 例如 X=ABCBDAB Y=BDCABA BCA是X和Y的一个公共子序列,但是不是X和Y的最长公共子序列,

Python--matplotlib绘图可视化知识点整理

Python--matplotlib绘图可视化知识点整理 强烈推荐ipython 原文:http://michaelxiang.me/2016/05/14/python-matplotlib-basic/ 无论你工作在什么项目上,IPython都是值得推荐的.利用ipython --pylab,可以进入PyLab模式,已经导入了matplotlib库与相关软件包(例如Numpy和Scipy),额可以直接使用相关库的功能. 本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找.

asp.net mvc 3.0 知识点整理 ----- (4).HtmlHelper(Html 辅助方法)介绍

在View视图中,Html的类型是System.Web.Mvc.HtmlHelper<T>, 所有的辅助方法都需要和ModelState交互.那么,ModelState是什么呢?它是模型绑定的附属品,并且存有模型绑定期间检测到的所有验证错误.以及用户提交用到来更新模型的原始值.本篇博文,我们主要来介绍下一些常用的html辅助方法的主要作用和使用方法. 1. Html.BeginForm()和Ajax.BeginForm().   Html.BeginForm(): 同于传统的表单提交,主要是生