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
我把正則表達式的一些基本語法都寫出來了,基本上每個都有例子。看上去不難,而正則表達式的難處就在于這些基本元素的組合。有些人覺得看正則表達式就像看天書一樣,一大堆符號在那里,的確是這樣,但是你掌握了他的基礎以后,你就能慢慢的看的懂它了,還是老話,多學多用。
轉載于:https://www.cnblogs.com/jiahuafu/archive/2013/05/12/3073702.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的AS3.0 正则表达式规则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux网桥浅析
- 下一篇: HDOJ 1143 Tri Tiling