參考網址:
http://deerchao.net/tutorials/regex/regex.htm
匹配字符:
[]-----表示匹配一個字符
^-----匹配字符串的開始,如果不在[]裡面表示以什麼開頭,在[^]表示不是那些字符
$-----匹配字符串的結束
.-----點表示匹配除換行符之外的任意字符
匹配字符取反:
\W-----匹配非(字母或數字或下劃線或漢字)
\w-----匹配(字母或數字或下劃線或漢字)
\D-----匹配非(數字字符)
\d-----匹配(數字字符)
\S-----匹配非(空白字符)
\s-----匹配(空白字符)
匹配次數:
{n}-----指定出現的次數
{m,n}-----最少出現m次,最多出現n次
{m,}-----最少出現m次,最多無限次
?-----重復0次或1次
+-----重復1次或多次
*-----重復0次或多次
正則表達式示例:
abc-----匹配abc
[a-z][0-9]-----包含一個小寫字母,後面必須跟一個0-9的數字
[a-zA-Z][0-9]或者[a-z,A-Z][0-9]-----逗號可寫可不寫,包含一個字母,後面必須跟一個0-9的數字
[a-zA-Z][0-9]{4,9}-----包含一個字母,後面跟上4-9個數字(數字范圍0-9)
^[1-9][0-9]{4,11}$-----QQ號碼匹配,以1-9的數字開頭,後面跟0-9(4-11個)的數字,一共5-12個數字,^表示開始匹配,$表示結束匹配
^1[3,5,7,8]\\d{9}$或者^1[3,5,7,8][0-9]{9}$-----手機號碼匹配,以13/15/17/18開頭,長度11的數字
^[^0-9]-----不能是數字開頭
1 class ViewController: UIViewController { 2 3 override func viewDidLoad() { 4 super.viewDidLoad() 5 regularExpressionDemo() 6 } 7 8 private func regularExpressionDemo() -> (){ 9 // 源字符串 10 let str = "中國中國abc23872367中國中國" 11 12 // 根據正則表達式進行匹配 13 // pattern:正則表達式 14 // options:匹配選項,如忽略大小寫等,傳[]即可 15 // range:匹配的范圍 16 let matchResult = try! NSRegularExpression(pattern: "abc", options: []).matches(in: str, options: [], range: NSMakeRange(0, (str as NSString).length)) 17 18 // 遍歷匹配結果 19 for match in matchResult{ 20 // 匹配的范圍 21 let range = match.range 22 23 // 根據匹配的范圍截取出符合條件的字符串 24 let subText = (str as NSString).substring(with: range) 25 26 print("匹配范圍:\(NSStringFromRange(range));截取的字符串:\(subText)") 27 } 28 } 29 }