`

正则基础2

阅读更多

1111-1234 re \d{5}(-\d{4})?
?指前面的子项可有可无
11111 re (\d)\1{4}
1221 re (\d)(\d)\2\1

RegExp对象
创建方式:
1 使用RegExp对象显式构造函数new RegExp("pattern"[,"flags"])
2 使用RegExp对象隐式构造函数/pattern/[flags]
flags参数
g 用作全局标志
i 用作无视大小写
m 用作多行标志
如果没有设置这个标志,那么“^”只与整个字符串的开始位置相配,“$”只与整个字符串的
结束位置相配,如果设置了这个标志,那么“^”还可以与字符串的“\n”和"\r"之后的位置相配
(即下一行的行首),面“$”还可以与字符串的“\n”和"\r"之前的位置相配(即一行的行首)

注意:javascript中的\是转义字符,所以应将原始正则表达式模式文本中的\都用
两个\\替换,如果要表示原意为"\"就要用"\\\\"表示
例:
var re=new RegExp("\\d{5}");显式
vaf re=/\d{5}/;隐式

RegExp对象的属性
共享的静态属性
index只读属性 当前使用的正则表达式的模式在被查找字符串中的第一个相配的字符串的开始位置,从0开始,默认为-1
lastindex只读属性 当前使用的正则表达式的模式在被查找字符串中的第一个相配的字符串的结束位置的下一个位置,从0开始,默认为-1
input属性  当前使用的正则表达式的模式所作用的字符串
lastMatch属性   当前使用的正则表达式的模式在被查找字符串中的最后一个字符串
lastParen属性
leftContext属性  当前使用的正则表达式的模式在被查找字符串中的最后一个字符串左边的位置
rightContext属性  当前使用的正则表达式的模式在被查找字符串中的最后一个字符串右边的位置

单个对名象实例的属性
global属性 返回创建对象实例时全局标志的状态,如果设了为treu,反为false
ignreCase属性  返回创建对象实例时指定的无视大小写状态,如果设了为treu,反为false
multiline属性  返回创建对象实例时指定的多行标志状态,如果设了为treu,反为false
source属性  返回创建对象实例时所指定的正则表达式文本
compile("pattern[,"flags"]")方法 更换创建RegExp对实例时所指定的正则表达式的模式
exec(str)方法 使用创建RegExp对实例时所指定的正则表达式的模式对一个字符串执行查找,并返回一个包含结果的数组,没有返回null
返回的数组有input,index和lastIndex三个属性
test(string)方法   检查一个字符串是否存在创建RegExp对实例时所指定的正则表达式的模式
说明:如果正则表达式设置了全局标志(g),可以多次调用exec和test方法,每次查找从lastIndex属性值指定的位置开始查找

例子:

<script type="text/javascript">
    
//例子:
        var strSrc="xxa1b01c001yya2b02c002zz";
        
var re=/a(\d)b(\d{2})c(\d{3})/gi;
        
var arr,count=0;
        
while((arr=re.exec(strSrc))!=null)
        
{
            displayResult();
        }


        
function displayResult()
        
{
            document.write(
"<p>这是用正表达式/"+re.source+"/gi对字符串<br></p>"+
                    RegExp.input
+"进行第"+(++count)+"次查找的结果:<br>");
            document.write(
"RegExp.index为"+RegExp.index+"<br>");
            document.write(
"RegExp.lastIndex为"+RegExp.lastIndex+"<br>");
            document.write(
"RegExp.lastMatch为"+RegExp.lastMatch+"<br>");
            document.write(
"RegExp.lastParen为"+RegExp.lastParen+"<br>");
            document.write(
"RegExp.leftContext为"+RegExp.leftContext+"<br>");
            document.write(
"RegExp.rightContext为"+RegExp.rightContext+"<br>");
            document.write(
"RegExp.$1为"+RegExp.$1+"<br>");
            document.write(
"RegExp.$2为"+RegExp.$2+"<br>");
            document.write(
"RegExp.$3为"+RegExp.$3+"<br>");
            document.write(
"RegExp.$4为"+RegExp.$4+"<br>");
            document.write(
"arr.inedex为"+arr.index+"<br>");
            document.write(
"arr.input为"+arr.input+"<br>");
            document.write(
"arr.lastIndex为"+arr.lastIndex+"<br>");
            document.write(
"返回数组元素的个数为"+arr.length+"<br>");
            document.write(
"返回数组元素的内容为[");
            
for(var i=0;i<arr.length;i++)
            
{
                
if(i<arr.length-1)
                
{
                    document.write(
"\""+arr[i]+"\",");
                }
else
                
{
                    document.write(
"\""+arr[i]+"\"]</p>");
                }

            }

        }

        
       
/////////--------------- String 对象----------------------------
             //match(rgExp)方法  使用正则表达式模式对字符串进行查找,并返回一个包含结果的数组
            
             
var strSrc="xxa1b01c001yya2b02c002zz";
        
var re=/a(\d)b(\d{2})c(\d{3})/gi;
        
var arr;
        arr
=strSrc.match(re);
        
for(var i=0;i<arr.length;i++)
        
{
            
if(i<arr.length-1)
                document.write(
"[\""+arr[i]+"\",")
            
else
                document.write(
"\""+arr[i]+"\"]")                
        }

             
             
             
//search(rgExp)方法 第一个字符串
             
             
//replace(rgExp,replaceText)方法
             
              
var strSrc="a12b34c56";
        
var re=/(\d)(\d)/gi;
        
var strDest=strSrc.replace(re,"$2$1");
        alert(strSrc
+"="+strDest);
            
             
             
//split(separator[,limit])方法
             
             
//正则表达式的语法
             //限定符:
             //{n}
             //{n,}前面的指定字符只少出现n次
             //{n,m}前面的指定字符只少出现n次,最多出现m次
             //+一次或多次,等效于{1,}
             //*零次或多次,等效于{0,}
             //?零次或一次
             
             
//贪婪匹配
             //默认情况下,正则表达式使用最长匹配原则
             //非贪婪匹配
             //当字符"?"紧跟任何其他限定符(*、+、?、{n}、{n,m}、{n,})之后,匹配变成最短匹配原则 "fo+?"
             //选择匹配符"|"
             //两边字符最大原则
             
             
//分组组合和反同引用符"()"和"\num"
             //(?:pattern)
             //un \u00A9匹配@
             //\f换页 等效于\x0c和\cL
             //\n换行 等效于
             //\r回车 等效于
             //\t制表 等效于
             //\v垂直制表符 等效于
             
             
//字符匹配符
             //[]任何一个
             //[^]取反任何一个
             //[a-z]取范围内的一个
             //[^a-z]不在范围内的字符
             //\d \D是\d的取反
             //\s空格 等效于[\f\n\r\t\v] \S非空格
             //\w单词 等效于[A-Za-z0-9_] \W
             //. 换行符以外的任意字符
             
             
//定位符
             //^开始位置
             //$结尾位置
             //\b 单词的边界(开始或结尾边界)
             //\B 非单词的边界
             
             
//原议字符
             //即需要\:
             //正则表达式从左到右进行计算,并按优先级顺序。
             /**//*
             空行  re /^\s*$/
             HTML标记 re  /<(\S+)(\s[^>]*?)>[\s\S]*<\/\1\s*>/
             Email   re  /[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
             两个相同的相邻单词 re /\b([a-z]+)\1\b/
             ip地址 /^\d{1,2}|1\d\d|2[0-4]\d|25[0-5(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/
             
*/

             
             
//例子
             /**//*
             
             
*/

    
</script>
分享到:
评论

相关推荐

    javastript正则表达式基础

    javastript正则表达式基础 javastript正则表达式基础 javastript正则表达式基础

    正则表达式基础正则表达式基础

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换...在“正则表达式基础.ppt”这个文件中,应该包含了更详细的讲解,可以帮助你深入理解这一主题。

    vba正则表达式基础

    vba正则表达式基础知识介绍,由浅入深,实例讲解

    Python正则表达式基础

    Python正则表达式基础是学习如何在Python中应用正则表达式的入门指南。正则表达式,或称为REs、regexes、regexpatterns,是能够嵌入到Python中的一个精细、高度专业化的程序语言。通过re模块,程序员得以使用这一...

    正则表达式的基础知识!

    以下是对正则表达式基础知识的详细解释: 1. **基础匹配**: - **基础匹配**:最简单的正则表达式就是你要匹配的文本本身,如"cat",可以匹配含有"cat"的字符串。 2. **句点符号(.)**: - **句点符号**:"....

    groovy正则表达式基础1

    【Groovy正则表达式基础1】 Groovy是一种基于Java平台的动态编程语言,它扩展了Java的功能,包括对正则表达式的处理。在Groovy中,正则表达式是通过`~`运算符或者使用斜杠(`/`)来定义的。这种特性使得Groovy在处理...

    前端教程:78 正则基础语法

    千锋Web前端教程_78_正则基础语法

    前端教程:79 正则基础语法

    千锋Web前端教程_79_正则基础语法

    前端教程:80 正则基础语法

    千锋Web前端教程_80_正则基础语法

    前端教程:81 正则基础语法

    千锋Web前端教程_81_正则基础语法

    JS正则表达式大全【2】

    这些只是JavaScript正则表达式的基础知识,实际上正则表达式还可以使用更复杂的构造,如递归、回溯限制等,以实现更精细的文本匹配和处理。掌握正则表达式对于编写高效、灵活的JavaScript代码至关重要。

    正则基础之 神奇的转义

    正则表达式是一种强大的文本匹配工具,广泛应用于编程语言和各种文本处理场景中。正则表达式通过使用一系列特殊字符,即元字符,来定义复杂的搜索模式。这些元字符具有特殊的意义,如表示重复次数、选择、分组等。...

    正则基础之 环视 Lookaround

    正则表达式中的环视(Lookaround)是正则表达式中用于位置匹配的一种特殊构造,它允许我们在满足某些条件的位置上进行匹配,但匹配过程中并不消耗任何字符,也就是说,匹配结果不包括在最终的匹配结果中。...

    正则基础之——NFA引擎匹配原理.rar

    本文件“正则基础之——NFA引擎匹配原理.rar”将深入探讨NFA的工作机制。 首先,我们需要理解NFA的基本概念。NFA是一种有向图,每个节点代表一个状态,边则表示状态间的转换。在NFA中,一个输入字符可以引发多个...

    正则表达式语法及常用正则表达式(附正则手册)

    下面我们将深入探讨正则表达式的基础语法和常用正则表达式,同时也会提及提供的HTML手册中的相关内容。 一、基础语法 1. **字符匹配**: - `\d`:匹配任何数字,等价于 `[0-9]` - `\D`:匹配非数字字符,等价于 ...

    正则基础之——小数点.rar

    在这个"正则基础之——小数点"的主题中,我们将深入探讨小数点在正则表达式中的应用。 1. 小数点(`.`)的元字符含义: 在正则表达式中,小数点(`.`)是一个元字符,它代表任意单个字符,除了换行符。这意味着`.`...

    TV正则化代码

    在本文中,我们将深入探讨TV正则化的概念、理论基础以及其在实际问题中的应用,尤其是通过"Zeroth-oder-Tikhonov-regularization-master"这个项目中的代码来理解这一技术。 首先,TV正则化源自数学中的变分理论,它...

Global site tag (gtag.js) - Google Analytics