在iOS ,寫一個(gè)正則表達(dá)式主要包括三個(gè)步驟:
1.創(chuàng)建匹配規(guī)則
let patternew = "@.*?:"
2.創(chuàng)建正則表達(dá)式對(duì)象
guard let regexs = try? NSRegularExpression(pattern: patternew, options: []) else{
return
}
3.開(kāi)始匹配
let results = regexs.matches(in: statusText, options: [], range: NSRange(location: 0, length: statusText.count))
4.獲取匹配對(duì)象
for result in results {
print(result.range)
print((statusText as NSString).substring(with: result.range))
}
然后來(lái)記錄一下簡(jiǎn)單的匹配規(guī)則纤房。
1.一般簡(jiǎn)單的匹配連續(xù)的字符串?
let pattern = "abc"
2.若將某個(gè)字符串中不連續(xù)的也要匹配出來(lái)
let pattern1 = "[abc]"
3.第一個(gè)是字母丙挽,第二個(gè)是數(shù)字
let pattern3 = "[a-z][0-9]"
4.^ 指的是判斷首字母版仔。例子:首字母必須是字母,并且后面跟兩個(gè)數(shù)字
let pattern4 = "^[a-z]\\d\\d"
5.數(shù)字位數(shù)的判斷用{},如果可以有多位纫谅,用逗號(hào)分隔株旷。上面例子的另一種寫法:
let pattern5 = "^[a-z]\\d{2}"
6.用什么結(jié)尾再登,用 $.例子:以字母結(jié)尾:
let pattern7 = "[a-z]$"
7.不能用^ .例子:首字母不能是字母:
let pattern8 = "^[^0-9]"
8.判斷是否為qq號(hào)碼的一個(gè)簡(jiǎn)單正則。1.必須是數(shù)字開(kāi)頭晾剖,2.第一位不能為0 3.qq 一般為5位-11位锉矢,所以判斷完第一位以后,后面還有4-10位
let pattenqq = "^[1-9]\\d{4,10}$"
9.在正則中 .代表任意字符钞瀑,*代表0-n位沈撞,
10例子:微博中需要匹配出@,#,還有表情,以如下為例子講解雕什。
let statusText = "@yananan:【動(dòng)物尖叫合輯】#哈哈哈哈#貓頭鷹這么尖叫[偷笑]缠俺、@liwuy: 老鼠這么尖叫、兔子這么尖叫[吃驚]贷岸、@wyjsn: 莫名奇#小籠包#妙的笑到最后[好愛(ài)哦]壹士!~ http://t.cn/zYBuKZ8/"
10.1匹配出@的用戶名。分析:@后面是任意位數(shù)的字符偿警,然后是 : 不過(guò)這個(gè)找到這個(gè)冒號(hào)后躏救,結(jié)束這個(gè)匹配,查找下一個(gè)螟蒸,添加 盒使?就是為了防止直接找到最后一個(gè):
let pattern = "@.*?:"
10.2匹配話題
let pattern = "#.*?#"
10.3匹配表情
let pattern = "\\[.*?\\]"