正则表达式
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代码/语法 * + ?
说明 匹配除换行符以外的任意字符 匹配字母或数字或下划线或汉字 匹配任意的空白符 匹配数字 匹配单词的开始或结束 匹配字符串的开始 匹配字符串的结束
说明 重复零次或更多次 重复一次或更多次 重复零次或一次
{n}
{n,} {n,m}
重复n次
重复n次或更多次 重复n到m次
正则表达式
3、提取子字符串 —— 基于模式匹配,可以查找文 档内或输入域内特定的文本,也是正则中最常用的 一部分,在涉及替换操作时往往都需要先提取。
例如:我们常常会听到,我想提取到其中的XX内容、关 键信息,想得到XX的一个参数属性值,又或是想判断用 户提交的表单中是否存有相关信息(首页显示图片新闻、 文字新闻的判断实现方式?)
常见的提取形式:URL分析YearMonth、文章采集、 搜索引擎的高亮显示等等。
MATCHING PATTERNS
正则表达式的功能强大表现在模式匹配上,而不是单一的 字符匹配上(匹配空字符、字母、数字、发音字符等) 什么是模式匹配?
子串的定位操作通常称作串的模式匹配 也可说成为满足某一规则的特殊串指定的过滤形式
Regexes有自己的简单语言,用于精确描述要匹配对象, 一行表达式代替众多的编码,但创建复杂,含义含糊, 可读性差,与Perl等成功的语言相同,但习惯后正则表达 式将非常容易使用。
WHY AND WHEN TO USE REGULAR EXPRESSIONS
Baidu Nhomakorabea
作用
模式匹配(对符合匹配项或模式组的特定串进行匹配、查 找) 替换 效率(不同于通常的大量数组、函数实现,且容易出错)
正则表达式
SOME NOTES ABOUT REGULAR EXPRESSIONS
起源
最早从 Unix 中的qed 编辑器,并作为文本编辑和搜索工 具中一个重要部分直到现在,属于Unix下专利,尤其是 Perl中应用,NET中Regex从Perl中衍生而来
字符串、文本处理相关 复杂度、可读性?
贪婪与懒惰
说明 重复任意次,但尽可能少重复 重复1次或更多次,但尽可能少重复 重复0次或1次,但尽可能少重复 重复n到m次,但尽可能少重复
表5.懒惰限定符 代码/语法 *? +? ?? {n,m}?
{n,}?
重复n次以上,但尽可能少重复
SIMPLE DEMO
验证jpg,jpeg,gif,bmp格式的文件名,大小写均可? 提取HTML代码中的对应标签<a >……</a> 匹配日期
模式匹配算法
常用的一些字符串处理算法(KMP串匹配等) 在进行模式匹配时,相关的查找、替换、匹配等会转化为特定 的模式匹配算法
这也正是正则式在前端不用写大量函数的原因 提供的算法不是万能的,所以一定程度上决定了正则的局 限性,在正则无法实现的地方,还需要写相关的函数
元字符
代码 . \w \s \d \b ^ $
1、数据验证
测试输入的字符串,是否符合一定的规则,是否允许输 入
Email地址合法性、网址、电话号码、出生年月等等验证
2、替换文本
可以使用正则表达式来识别文档中的特定文本,完全删 除该文本或者用其他文本或字符替换。
WHY AND WHEN TO USE REGULAR EXPRESSIONS
2/31/2006 (0512) 68078800-6852
电话号码(区号提取)
校验Color Hex Codes
fff112
SIMPLE DEMO
判断C#代码有无注释
// /////// /**/ /****/
说明 匹配除换行符以外的任意字符 匹配字母或数字或下划线或汉字 匹配任意的空白符 匹配数字 匹配单词的开始或结束 匹配字符串的开始 匹配字符串的结束
说明 重复零次或更多次 重复一次或更多次 重复零次或一次
{n}
{n,} {n,m}
重复n次
重复n次或更多次 重复n到m次
正则表达式
3、提取子字符串 —— 基于模式匹配,可以查找文 档内或输入域内特定的文本,也是正则中最常用的 一部分,在涉及替换操作时往往都需要先提取。
例如:我们常常会听到,我想提取到其中的XX内容、关 键信息,想得到XX的一个参数属性值,又或是想判断用 户提交的表单中是否存有相关信息(首页显示图片新闻、 文字新闻的判断实现方式?)
常见的提取形式:URL分析YearMonth、文章采集、 搜索引擎的高亮显示等等。
MATCHING PATTERNS
正则表达式的功能强大表现在模式匹配上,而不是单一的 字符匹配上(匹配空字符、字母、数字、发音字符等) 什么是模式匹配?
子串的定位操作通常称作串的模式匹配 也可说成为满足某一规则的特殊串指定的过滤形式
Regexes有自己的简单语言,用于精确描述要匹配对象, 一行表达式代替众多的编码,但创建复杂,含义含糊, 可读性差,与Perl等成功的语言相同,但习惯后正则表达 式将非常容易使用。
WHY AND WHEN TO USE REGULAR EXPRESSIONS
Baidu Nhomakorabea
作用
模式匹配(对符合匹配项或模式组的特定串进行匹配、查 找) 替换 效率(不同于通常的大量数组、函数实现,且容易出错)
正则表达式
SOME NOTES ABOUT REGULAR EXPRESSIONS
起源
最早从 Unix 中的qed 编辑器,并作为文本编辑和搜索工 具中一个重要部分直到现在,属于Unix下专利,尤其是 Perl中应用,NET中Regex从Perl中衍生而来
字符串、文本处理相关 复杂度、可读性?
贪婪与懒惰
说明 重复任意次,但尽可能少重复 重复1次或更多次,但尽可能少重复 重复0次或1次,但尽可能少重复 重复n到m次,但尽可能少重复
表5.懒惰限定符 代码/语法 *? +? ?? {n,m}?
{n,}?
重复n次以上,但尽可能少重复
SIMPLE DEMO
验证jpg,jpeg,gif,bmp格式的文件名,大小写均可? 提取HTML代码中的对应标签<a >……</a> 匹配日期
模式匹配算法
常用的一些字符串处理算法(KMP串匹配等) 在进行模式匹配时,相关的查找、替换、匹配等会转化为特定 的模式匹配算法
这也正是正则式在前端不用写大量函数的原因 提供的算法不是万能的,所以一定程度上决定了正则的局 限性,在正则无法实现的地方,还需要写相关的函数
元字符
代码 . \w \s \d \b ^ $
1、数据验证
测试输入的字符串,是否符合一定的规则,是否允许输 入
Email地址合法性、网址、电话号码、出生年月等等验证
2、替换文本
可以使用正则表达式来识别文档中的特定文本,完全删 除该文本或者用其他文本或字符替换。
WHY AND WHEN TO USE REGULAR EXPRESSIONS
2/31/2006 (0512) 68078800-6852
电话号码(区号提取)
校验Color Hex Codes
fff112
SIMPLE DEMO
判断C#代码有无注释
// /////// /**/ /****/