`
solomongg
  • 浏览: 52770 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

AS3中的正则表达式

    博客分类:
  • flex
阅读更多

  AS3 中的正则表达式
一、 定义方式,可以有两种

var  pattern1:RegExp  =   new  RegExp( " test-\\d " " i " );
var  pattern2:RegExp  =   / test - \d / i;

1)  使用 new 来新建一个 RegExp 对象,其中参数为 1 )表达式字符串 2 )表达式的参数,这种方式如果要用 \, 一定要用 \\ 来转义。
2)  直接采用 / 形式,以把表达式的内容写到 /……./ 里面,在后面跟上表达式的参数,参数字符可以同时添加多个,例如: /………/gi
二、 参数介绍
1) Dotall 属性,用 s 字符表示参数,指定字符( . )在表达式里是不是匹配新行,如果使用了 s 参数,那就表示 dotall 表示真
例:

var  str:String  =   " <p>Hello\n "
                  
+   " again</p> "
                  
+   " <p>Hello</p> " ;            
var  pattern:RegExp  =   /< p > . *?< \ / p >/ ;
trace(pattern.dotall) 
//  false
trace(pattern.exec(str));  //  <p>Hello</p>
pattern  =   /< p > . *?< \ / p >/ s;
trace(pattern.dotall) 
//  true
trace(pattern.exec(str)); 
2) Extended 属性,用 x 参数表示,指是否在表达式定义的时候是否忽略空格
例:
var  rePhonePattern1:RegExp  =   / \d { 3 } - \d { 3 } - \d { 4 } | \(\d { 3 } \)\s ? \d { 3 } - \d { 4 } /
var  str:String  =   " The phone number is (415)555-1212. " ;
 
trace(rePhonePattern1.extended) 
//  false
trace(rePhonePattern1.exec(str));  //  (415)555-1212
 
var  rePhonePattern2:RegExp  =   /  \d { 3 } - \d { 3 } - \d { 4 }   |    \( \d { 3 }  \) \  ?  \d { 3 } - \d { 4 }   / x; 
trace(rePhonePattern2.extended) 
//  true
trace(rePhonePattern2.exec(str));  //  (415)555-1212
 

3) global 属性,用 g 参数表示,指是否用表达式在匹配以后在下次匹配的时候是从头再来还是从上次匹配过的地方开始,其 lastIndex 属性会保存起来。
例:

var  pattern:RegExp  =   / foo\d /
var  str:String  =   " foo1 foo2 " ;
trace(pattern.global); 
//  false
trace(pattern.exec(str));  //  foo1
trace(pattern.lastIndex);  //  0
trace(pattern.exec(str));  //  foo1
 
pattern 
=   / foo\d / g;
trace(pattern.global); 
//  true
trace(pattern.exec(str));  //  foo1
trace(pattern.lastIndex);  //  4
trace(pattern.exec(str));  //  foo2
4)
ignoreCase 属性,用 i 参数表示,指表达式匹配的时候是否区别大小写。
例:
var  pattern:RegExp  =   / bob /
var  str:String  =   " Bob bob " ;
trace(pattern.ignoreCase); 
//  false
trace(pattern.exec(str));  //  bob
 
pattern 
=   / bob / i;
trace(pattern.ignoreCase); 
//  true
trace(pattern.exec(str));  //  Bob
5)
lastIndex 属性,指定下次查询的起始位置,这个属性影响两个方法 exec() test() match() replace() search() 方法是忽略这个属性的,他们总是从头开始的。
这个属性要和 global 结合使用,当 global true 时,执行 exec() test() 后, lastIndex 属性会被设置为下一个字符,如果是 false ,则会从头开始。
例:
6) multiline 属性,用 m 参数表示,指表达式匹配的时候用字符( ^ )和( $ )分别表示在之前或之后有新的一行。
例:
var  pattern:RegExp  =   /^ bob /
var  str:String  =   " foo\n "
                
+   " bob " ;
trace(pattern.multiline); 
//  false
trace(pattern.exec(str));  //  null
 
pattern 
=   /^ bob / m;
trace(pattern.multiline); 
//  true
trace(pattern.exec(str));  //  bob
7)
source 属性,返回表达式的定义字符串。
例:
var  re1:RegExp  =   / aabb / gi;
trace (re1.source); 
//  aabb
 
var  re2:RegExp  =   new  RegExp( " x+y* " " i " );
trace(re2.source); 
//  x+y*
三、
方法介绍
       1)  Exec() 方法:  
                        i.  输入:传入一个 String 类型的参数,表示要查询的字符串。
 
                      ii.   返回:如果没有匹配到就返回 null ,否则返回一个 Object 对象。
     这个 Object 对象的属性:
       
a)  一个 Array (数组),元素 0 包含一个匹配得到的子串, 1 n 包含,其中定义的组所匹配的字符子串
       
b) Index 匹配子串在字符串里的位置
       
c)  Input 输入的原始字符串。
例:
var  myPattern:RegExp  =   / (\w * )sh(\w * ) / ig;   
         
var  str:String  =   " She sells seashells by the seashore " ;
         
var  result:Object  =  myPattern.exec(str);
         trace(result);

输出:

  • result[0] ”she”
  • result[1] 是一个空串( 第一个\w 是匹配到空的子串)
  • result[2] ”e”
  • result.index 0
  • result.input She sells seashells by the seashore”

设置了g(global) 属性的例子:

var  myPattern:RegExp  =   / (\w * )sh(\w * ) / ig; 
       
var  str:String  =   " She sells seashells by the seashore " ;
       
var  result:Object  =  myPattern.exec(str);
                  
while  (result  !=   null {
             trace ( result.index, 
" \t " , result);
             result 
=  myPattern.exec(str);
        }

      输出:
            0      She,,e
            10     seashells,sea,ells
            27     seashore,sea,ore
   
2)        Test() 方法:
                        i.              输入:传入一个 String 类型的参数,表示要查询的字符串。
 
                      ii.              返回:如果匹配返回 true ,否则返回 false.
例:
var  re1:RegExp  =   / \w / g;
var  str:String  =   " a b c " ;
trace (re1.lastIndex); 
//  0
trace (re1.test(str));  //  true
trace (re1.lastIndex);  //  1
trace (re1.test(str));  //  true
trace (re1.lastIndex);  //  3
trace (re1.test(str));  //  true
trace (re1.lastIndex);  //  5
trace (re1.test(str));  //  false

四、 综合例子:

package  {

    import flash.display.Sprite;
 
    public class RegExpExample extends Sprite 
{        
        public 
function  RegExpExample()  {            
            
var  formalGreeting:String  =   " Hello, John Smith. " ;
            trace(informalizeGreeting(formalGreeting));    
//  Hi, John.
 
            
var  validEmail:String  =   " name@domain.com " ;
            trace(validateEmail(validEmail));        
//  true
            
            
var  invalidEmail:String  =   " foo " ;
            trace(validateEmail(invalidEmail)); 
//  false
            
            
var  validPhoneNumber:String  =   " 415-555-1212 " ;
            trace(validatePhoneNumber(validPhoneNumber));    
//  true
            
            
var  invalidPhoneNumber:String  =   " 312-867-530999 " ;
            trace(validatePhoneNumber(invalidPhoneNumber)); 
//  false
        }

        private 
function  informalizeGreeting(str:String):String  {
            
var  pattern:RegExp  =   new  RegExp( " hello, (\\w+) \\w+ " " i " );
            
return  str.replace(pattern,  " Hi, $1 " );
        }

        private 
function  validateEmail(str:String):Boolean  {
            
var  pattern:RegExp  =   / (\w | [_.\ - ]) + @((\w |- ) + \.) + \w { 2 , 4 } +/ ;
            
var  result:Object  =  pattern.exec(str);
            
if (result  ==   null {
                
return   false ;
            }

            
return   true ;
        }

        private 
function  validatePhoneNumber(str:String):Boolean  {
            
var  pattern:RegExp  =   /^ \d { 3 } - \d { 3 } - \d { 4 } $ / ;
            
var  result:Object  =  pattern.exec(str);
            
if (result  ==   null {
                
return   false ;
            }

            
return   true ;
        }

    }

}

分享到:
评论

相关推荐

    AS3常用正则表达式

    在AS3(ActionScript 3)中,正则表达式的实现主要依赖于`RegExp`类。 - **`.`**:匹配任意字符(除了换行符) - **`^`**:匹配输入字符串的开始位置 - **`$`**:匹配输入字符串的结束位置 - **`*`**:前面的子...

    正则表达式入门与提高---整理版_VBa_正则式_

    正则表达式是一种强大的文本处理工具,用于在字符串中匹配、查找、替换或者提取特定模式。在VBA(Visual Basic for Applications)环境中,正则表达式可以极大地增强你在Excel、Word等Office应用中的数据处理能力。...

    BGP_AS-PATH的正则表达式

    在BGP中,正则表达式主要用于AS-PATH的过滤,使得网络管理员能够精确地控制哪些路由信息应该被接受或拒绝。 #### 二、BGP_AS-PATH正则表达式的语法元素 - **特殊元字符**:这些字符在正则表达式中有特殊的含义,...

    Oracle正则表达式详解(用法+实例)

    正则表达式是一种用于匹配字符串中字符组合的工具。它由一个或多个字符及特殊的字符元组成,能够帮助我们执行复杂的字符串搜索和替换任务。在Oracle数据库中,正则表达式的应用非常广泛,例如用于数据有效性验证、...

    wps正则表达式 以及 wps通过正则表达式验证手机号码

    在Excel表格处理中,正则表达式是一种强大的文本匹配工具,可以帮助我们进行复杂的数据验证、查找和替换操作。虽然默认情况下,WPS Excel并不直接支持正则表达式,但通过其自定义函数功能,我们可以创建自己的函数来...

    AS2 正则表达式

    Flash AS2.0 常用的正则表达式

    VB.NET正则表达式参考手册

    正则表达式(Regular Expression)则是VB.NET中用于处理和匹配文本的强大工具,广泛应用于数据验证、文本提取、替换等场景。本手册将深入探讨VB.NET中的正则表达式及其应用。 一、正则表达式基础 正则表达式是一组...

    各种正则表达式教程集合

    3. **Visual Basic中的正则表达式** - **引用库**:在VB中使用正则表达式,需要引入`System.Text.RegularExpressions`命名空间。 - **Regex对象**:创建`New Regex("pattern", RegexOptions)`实例,`Options`参数...

    vb+word正则表达式

    在VB(Visual Basic)环境中结合Word应用程序,正则表达式可以帮助开发者实现更复杂的文本操作功能,比如文档清理、数据提取、格式校验等。下面将详细介绍VB如何使用正则表达式,并结合Word应用进行实际操作。 首先...

    从文件中按正则表达式查找不同的值

    本文将详细介绍如何在文件中使用正则表达式查找不同的值,并去除重复项。 首先,我们需要理解什么是正则表达式。正则表达式是由字符、特殊符号和操作符组成的模式,用于匹配字符串。例如,`\d{3}-\d{4}`可以用来...

    vb与正则表达式小实例

    2. **创建Regex对象**:创建一个`Regex`对象,如`Dim regex As New Regex("你的正则表达式")`,这里的"你的正则表达式"是符合你要验证的模式的字符串。 3. **正则表达式语法**:学习正则表达式的语法至关重要,例如...

    简单的正则表达式

    在IT行业中,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,用于匹配、查找、替换或验证字符串模式。在VB.NET编程环境中,正则表达式库提供了丰富的功能,使得开发者能够轻松地处理复杂的...

    VB6 正则表达式类

    3. **执行匹配**:使用`Execute`方法来执行正则表达式并获取匹配结果。它返回一个MatchCollection对象,包含了所有匹配的子串: ```vb Dim matches As MatchCollection Set matches = regex.Execute("your_string...

    EXCEL-VBA-正则表达式-从实例开始.docx

    正则表达式(Regular Expression),简称“regex”或“regexp”,是一种强大的文本模式匹配工具,广泛应用于多种编程语言中,用于进行复杂的文本搜索和处理任务。尽管正则表达式的概念并非VBA所独有,但在Excel VBA...

    JAVA 正则表达式测试器

    Java正则表达式测试器是一款强大的工具,专为在Java环境中进行正则表达式测试而设计。它使得开发者能够在编写和调试正则表达式时节省大量时间和精力,避免了传统方式下反复试错的繁琐过程。这个工具的核心功能是提供...

    Actionscript_3_正则表达式的使用

    在ActionScript 3.0(AS3)中,正则表达式作为一种强大的文本处理工具被引入,它能够帮助开发者高效地进行字符串搜索、替换和解析等操作。正则表达式由多个部分组成,包括元字符、元序列、标志以及数量表达符,下面...

Global site tag (gtag.js) - Google Analytics