隐秘而伟大

博客园 首页 联系 订阅 管理

正则表达式(Regular Expression)是一种文本模式,包括普通字符(a-z)和特殊字符(称为“元字符”)。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串

正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。

简介:

 

 

测试字符串内的模式:

  例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。

替换文本。

  可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者其他文本替换它。

基于模式匹配从字符串中提取字符串

  可以查找文档内或输入域内的特定的文本。

例如,您可能需要搜索整个网站,删除过时材料,以及替换某些HTML格式标记。在这种情况下,可以使用正则表达式来确定每个文件中是否出现该材料或该HTML格式标记。

此过程将受影响的文件列表缩小到包含需要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料。最后可以使用正则表达式来搜索和替换标记。

 

语法:

构造正则表达式的方法和创建数学表达式的方法一样。

也就是使用多种“元字符”与运算符可以将小的表达式结合在一起来创建更大的表达式。

正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

正则表达式作为一个模板,将某个字符模式与搜索的字符进行匹配。

 

普通字符

普通字符包括没有“显式指定为元字符”的所有可打印的和不可打印的字符。这包括所有的大小写字母、所有数字、所有标点符号和一些其他符号。

 

非打印字符

非打印字符也可以是正则表达式的组成部分。

 

特殊字符

所谓特殊字符,就是一些有特殊含义的字符,

例如 * 表示任何字符串  如果要查找字符串中的 * 符号 需要对 *符号进行转义 \*

许多元字符要求在视图匹配他们时特别对待。若要匹配这些特殊字符,必须首先使用转义字符 即 反斜杠字符 “\”放在它前面。

 

$:匹配输入字符串的结尾位置。如果设置了RegExp对象的Multiline属性,则$也匹配‘\n’或者'\r'.

():标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。

*:匹配前面的子表达式零次货多次

+:匹配前面的表达式一次或多次。

.:匹配除换行符\n之外的任何单字符

[:标记一个中括号表达式的开始

?:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。

\:将下一个字符标记为特殊字符、或原义字符、或向后引用、或八进制转义符。

^:匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。

{:标记限定字符表达式的开始

|:指明两项之间的一个选择。

 

限定符

用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。

有 *  +  ?  {n}  {n,}  {n,m}  共6种

*:匹配前面的子表达式零次或多次

+:匹配前面子表达式一次货多次

?:匹配前面表达式零次或一次

{n}:n是一个非负整数。匹配确定的n次

{n,}:n是一个非负整数。至少匹配n次

{n,m}:m和n均为非负整数。其中n <= m 。最少匹配n次且最多匹配m次。n和m之间的“,”不能有空格

 

 

正则表达式 () 、[ ] 、{}的区别

() :是为了提取匹配字符串,表达式有几个()就有几个相应的匹配字符串

[] :是定义匹配的字符串范围。比如[a-zA-Z0-9]表示相应位置的字符要匹配英文字符和数字

{} :一般是用来匹配长度。比如\s{1,3}表示匹配1到3个空格

 

posted on 2019-07-22 20:43  隐秘而伟大  阅读(130)  评论(0编辑  收藏  举报