正則表達式

正則表達式html

在編寫處理字符串的程序時,常常會有查找符合某些複雜規則的字符串的須要。正則表達式就是用於描述這些規則的工具。換句話說,正則表達式就是記錄文本規則的代碼java

正則表達式是對字符串操做的一種邏輯公式,用事先定義好的一些特定字符、及這些特定字符的組合,組成一個"規則字符串",這個"規則字符串"用來表達對字符串的一種過濾邏輯。python

-在不少文本編輯器裏,能夠使用正則表達式進行檢索,Xcode一樣支持正則表達式!
-幾乎全部的程序設計語言都支持正則表達式,例如:OC,java,c#,python,js等。正則表達式

練習:
練習1:匹配abc
練習2:包含一個寫a~z,後面必須是0~9 -->[a-z][0-9]或者[a-z]\d
練習3:必須第一個是字母,第二個是數字 -->^[a-z][0-9]$
練習4:必須第一個是字母,字母后面跟上4~9個數字
練習5:不能是數字[^0-9]c#

練習6:QQ匹配:^[1-9]\d{4,11}$
1.都是數字
2.5~12位編輯器

練習7:手機號碼匹配^1[3578]\d{9}$
1.以13/15/17/18
2.長度是11工具

經常使用正則表達式:http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.htmlurl

NSRegularExpressionCaseInsensitive = 1 << 0, 忽略大小寫
NSRegularExpressionAllowCommentsAndWhitespace = 1 << 1, 忽略空白字符,以及前綴是 # 開始的註釋
NSRegularExpressionIgnoreMetacharacters = 1 << 2, 將整個匹配方案做爲文字字符串
NSRegularExpressionDotMatchesLineSeparators = 1 << 3, 容許 . 匹配任意字符,包括回車換行
NSRegularExpressionAnchorsMatchLines = 1 << 4, 容許 ^ 和 $ 匹配多行文本的開始和結尾
NSRegularExpressionUseUnixLineSeparators = 1 << 5, 僅將 \n 做爲換行符
NSRegularExpressionUseUnicodeWordBoundaries = 1 << 6 使用 Unicode TR#29 指定單詞邊界spa

url正則:"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"設計

0> 匹配

(pattern) 匹配pattern並獲取這一匹配,所獲取的匹配能夠從產生的Matches集合獲得

1> 經常使用元字符

. 匹配除換行符之外的任意字符
\w 匹配字母或數字或下劃線或漢字
\s 匹配任意的空白符(空格、TAB\t、回車\r \n)
\d 匹配數字

^ 匹配字符串的開始
$ 匹配字符串的結束
\b 匹配單詞的開始或結束

2> 經常使用反義符

\W 匹配任意不是字母,數字,下劃線,漢字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非數字的字符

\B 匹配不是單詞開頭或結束的位置
[^x] 匹配除了x之外的任意字符
[^aeiou] 匹配除了aeiou這幾個字母之外的任意字符

3> 集合

[xyz] 字符集合
[^xyz] 負值字符集合
[a-z] 字符範圍
[^a-z] 負值字符範圍

4> 經常使用限定符

  • 重複零次或更屢次
  • 重複一次或更屢次
    ? 重複零次或一次
    {n} 重複n次
    {n,} 重複n次或更屢次
    {n,m} 重複n到m次

5> 貪婪和懶惰

? 重複任意次,但儘量少重複 + 重複1次或更屢次,但儘量少重複 ?? 重複0次或1次,但儘量少重複 {n,m}? 重複n到m次,但儘量少重複 {n,}? 重複n次以上,但儘量少重複

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息