zoukankan      html  css  js  c++  java
  • AS3.0 正则表达式规则

    谈谈正则表达式,AS3.0中引进了正则表达式。正则表达式是用于验证文本值是否符合特定模式。
    正则表达式有四个部分。1元子符。2元序列。3标志。4数量表达符。
    可以这样看 pattern RegExp= /匹配字符串 元字符 元序列/标志 当然顺序可能不完全是这样.别把他想的太复杂其实他就是个组合。
    现在我们来看看元字符: ^ $ \ . * + ? ( ) [ ] { } |
    前面说的是转义字符串的使用
    1.^的用法:匹配字符串的开头
    var pattern:RegExp=/^小虫/;
    var str:String="小虫是好人";
    trace(str, " is valid:", pattern.test(str));小虫是好人 is valid: true
    2.$的用法:匹配字符串的结尾
    var pattern:RegExp=/lizhen$/; 
    var str:String="My name is lizhen";
    trace(str, " is valid:", pattern.test(str));小虫是好人 is valid: true
    仔细看一下两个符号在匹配字符串中的位置,注意:如果同时使用^符号和$符号,将进行精确匹配。
    3.\的用法:匹配字符串的结尾
    如果匹配字符串中包含有"/"比如 1/2 的时候,使用如下定义
    var pattern:RegExp = /1\/2/;
    var str:String="1/2是多少?";
    trace(str, " is valid:", pattern.test(str));1/2是多少? is valid: true
    如果匹配字符串中包含有""比如 "lizhen" 的时候,使用如下定义
    var pattern:RegExp=/\"lizhen"/;
    var str:String="My name is \"lizhen\"";

    trace(str, " is valid:", pattern.test(str));My name is "lizhen" is valid: true
    4.*的用法:匹配0个或多个前面的字符.
    var pattern:RegExp=/我的*/;
    var str:String="我的我的我的";或者var str:String="我的"

    trace(str, " is valid:", pattern.test(str));我的我的... is valid: true
    5.+的用法:匹配至少一个前面的字符
    var pattern:RegExp=/我的+/;
    var str:String="我的ID是...";或者var str:String="我的"

    trace(str, " is valid:", pattern.test(str));我的ID是... is valid: true
    注意+和*的区别。如果var str:String="我的"那就会显示false
    6.?的用法:匹配0个或1个前面的字符
    var pattern:RegExp=/天?/;
    var str:String="一天快乐";或者var str:String="天天快乐";
    trace(str, " is valid:", pattern.test(str));一天快乐 is valid: true
    7..的用法:匹配任意单个字符
    var pattern:RegExp=/天./;
    var str:String="一天快乐";或者var str:String="天天快乐";
    trace(str, " is valid:", pattern.test(str));一天快乐 is valid: true
    8.[ ]的用法:匹配某一个范围而不局限于具体的单个字符
    var pattern:RegExp=/[a-z]/ 
    var str:String="a"
    trace(str, " is valid:", pattern.test(str));a is valid: true
    9.( )的用法:这个就相当于是个集合。
    var pattern:RegExp=/([a-z][A-Z][0-9])+/ 比如说这个就是定义了一个四个字符的字符串第一个字符是a到z之间的字符第二个是A到Z之间的字符第三个是0-9之间的字符,第四个重复前面的数字。
    var str:String="aD77aaaaaaaaaaaaaaaa"
    trace(str, " is valid:", pattern.test(str));aD77aaaaaaaaaaaaaaaa is valid: true
    10.|的用法:匹配左边或者右边的字符。
    var pattern:RegExp=/小虫|lizhen/ 
    var str:String="小虫是好人"
    trace(str, " is valid:", pattern.test(str));小虫是好人 is valid: true
    现在说说元序列 元序列是在正则表达式模式中具有特殊含义的字符序列{n} {n,} {n,m} \b \B \d \D \f \n \r \s \S \t \unnnn \v \w \w \W \xnn
    1.{n}的用法:匹配恰好n个(n为非负整数)前面的字符。
    var pattern:RegExp=/(小虫){2}/ 对象中连续出现2次小虫.注意下(),如果用var pattern:RegExp=/小虫{2}/ 那么就是var str:String="小虫虫"
    var str:String="小虫小虫"
    trace(str, " is valid:", pattern.test(str));小虫小虫 is valid: true.
    2.{n,}的用法:匹配恰好n个(n为非负整数)或更多个前面的字符。
    3.{n,m}的用法:匹配至少n个,至多m个前面的字符。
    4.\b的用法:匹配单词字符和非单词字符之间的位置只能放在开头和结尾。NN的,他不支持中文.用中文还是用^.
    var pattern:RegExp=/\b小虫/ 
    var pattern:RegExp=/.mp3\b/ 
    var str:String="小虫.mp3"可以判断是否是mp3格式。
    trace(str," is valid:", pattern.test(str));小虫.mp3 is valid: true
    5.\B的用法:匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾和\b相反。
    var pattern:RegExp=/\B是/ 
    var str:String="我是虫子"
    trace(str," is valid:", pattern.test(str));我是虫子 is valid: true
    6.\d的用法:用于匹配从0到9的数字;
    var pattern:RegExp=/\b\d/ 开头的第一字符必须为数字
    var str:String="900/元"
    trace(str," is valid:", pattern.test(str)); 900/元 is valid: true
    7.\D的用法:匹配除数字以外的任何字符
    var pattern:RegExp=/\b\D/ 开头的第一字符必须不为数字
    var str:String="a900/元"
    trace(str," is valid:", pattern.test(str)); a900/元 is valid: true
    8.\f的用法:匹配换页符DOS操作时代的概念
    9.\n的用法:匹配换行符
    var pattern:RegExp=/\n/
    var str:String="欢迎来到虫子的空间!\n"
    trace(str," is valid:", pattern.test(str)); 
    10.\r的用法:匹配回车符
    var pattern:RegExp=/\r/
    var str:String="欢迎来到虫子的空间!\r"
    trace(str," is valid:", pattern.test(str)); 
    11.\s的用法:匹配任何空白字符(空格、制表符、换行符或回车符)
    var pattern:RegExp=/\s/
    var str:String="欢迎来到虫子的 空间!"
    trace(str," is valid:", pattern.test(str)); 欢迎来到虫子的 空间! is valid: true
    12.\S的用法:匹配除空白字符以外的任何字符
    var pattern:RegExp=/\S/
    var str:String="欢迎来到虫子的空间!"
    trace(str," is valid:", pattern.test(str)); 欢迎来到虫子的空间! is valid: true
    13.\t的用法:匹配制表符DOS操作时代的概念
    14.\unnnn用法:匹配字符代码由十六进制数字 nnnn 指定的 Unicode 字符。例如,\u263a 是一个笑脸字符
    var pattern:RegExp=/\u263a/
    var str:String="欢迎来到虫子的空间!\u263a"
    trace(str," is valid:", pattern.test(str)); 欢迎来到虫子的空间!☺ is valid: true
    15.\v 用法:匹配垂直换页符DOS操作时代的概念
    16.\w用法:匹配单词字符(A-Z、a-z、0-9 或 _)。请注意,\w不匹配非英文字符,如é、ñ 或 ç。他和[]是有区别的。
    var pattern:RegExp=/^\w/
    var str:String="a虫子"
    var str:String="0虫子"
    var str:String="A虫子"
    var str:String="_虫子"
    trace(str," is valid:", pattern.test(str));_虫子 is valid: true
    17.\W用法:匹配除单词字符以外的任何字符。
    var pattern:RegExp=/^\W/
    var str:String="虫子"
    trace(str," is valid:", pattern.test(str));虫子 is valid: true
    18.\xnn用法:匹配具有指定 ASCII 值(由十六进制数字 nn 定义)的字符。
    var pattern:RegExp=/^\x41/;"A"
    var str:String="ABCD";
    trace(str," is valid:", pattern.test(str));ABCD is valid: true
    标志:标志可以作为正则表达式对象属性进行访问。正则表达式有五个标志:g i m s x
    1.g的用法:如果不指定g,那么在查找的时候只会返回一个。如:
    var str:String = "she sells seashells by the seashore.";
    var pattern:RegExp = /sh\w*/;
    trace(str.match(pattern)) 输出:she
    指定g后:
    var str:String = "she sells seashells by the seashore.";
    var pattern:RegExp = /sh\w*/g;
    trace(str.match(pattern)) 输出:she,shells,shore
    2.i的用法:默认情况下,正则表达式匹配区分大小写。如果设置 i (ignoreCase) 标志,将忽略区分大小写。
    var str:String = "She sells seaShells by the seaShore.";
    var pattern:RegExp = /sh\w*/gi;
    trace(str.match(pattern)) 输出:She,Shells,Shore
    3.m的用法:匹配"行"的开头和结尾.注意这里的行只有 \n 字符表示行的结束,其余的都不行。包括\r。比如:
    var str:String = "She sells seaShells by the seaShore.\n";
    str+="She's your mother"
    var pattern:RegExp = /^sh\w*/gim;
    trace(str.match(pattern)) 输出:She,She
    也可以在结尾使用.比如:
    var str:String = "She sells seaShells by the seaShore.\n";
    str+="She's your mother.\n"
    var pattern:RegExp = /\n\$\w*/gim;
    trace("====="+str.match(pattern)) 输出:===== 
    4.s的用法:用点来匹配换行符
    var str:String = "<p>Test\n";
    str += "Multiline</p>";
    var re:RegExp = /<p>.*?<\/p>/s;
    trace(str.match(re));
    5.x的用法:在正则表达式中使用 x (extended) 标志时,则会忽略在模式中键入的所有空格。
    var str:String = "lizhen";
    var re:RegExp = /li zhen/x
    trace(str.match(re));输出:lizhen

    我把正则表达式的一些基本语法都写出来了,基本上每个都有例子。看上去不难,而正则表达式的难处就在于这些基本元素的组合。有些人觉得看正则表达式就像看天书一样,一大堆符号在那里,的确是这样,但是你掌握了他的基础以后,你就能慢慢的看的懂它了,还是老话,多学多用。

     
  • 相关阅读:
    设置maven阿里云镜像和公司私服并存
    idea favorites bookmarks标签收藏夹数据丢失bug
    C#后期绑定调用COM组件
    SQL Studio 1.0:一款轻便的SQL脚本工具兼容SQL Server、MySQL、Access2007
    SQL Studio 2.0: 新版发布
    SQLHelper用的不爽,试试CmdRunner吧
    Flask + uWSGI+ Linux 指南及避坑
    Flask + Pyinstaller 打包后运行报错 SystemError
    Url重写之UrlRewriter
    .net5 提取压缩包内指定文件内容无需解压
  • 原文地址:https://www.cnblogs.com/jiahuafu/p/3073702.html
Copyright © 2011-2022 走看看