iOS碎碎念

正则表达式

2017-12-14  本文已影响5人  tiGress

在iOS ,写一个正则表达式主要包括三个步骤:

1.创建匹配规则

let patternew = "@.*?:"

2.创建正则表达式对象

guard let regexs = try? NSRegularExpression(pattern: patternew, options: []) else{

return

}

3.开始匹配

let results = regexs.matches(in: statusText, options: [], range: NSRange(location: 0, length: statusText.count))

4.获取匹配对象

for result in results {

print(result.range)

print((statusText as NSString).substring(with: result.range))

}

然后来记录一下简单的匹配规则。

1.一般简单的匹配连续的字符串 

let pattern = "abc"

2.若将某个字符串中不连续的也要匹配出来

let pattern1 = "[abc]"

3.第一个是字母,第二个是数字

let pattern3 = "[a-z][0-9]"

4.^ 指的是判断首字母。例子:首字母必须是字母,并且后面跟两个数字

let pattern4 = "^[a-z]\\d\\d"

5.数字位数的判断用{},如果可以有多位,用逗号分隔。上面例子的另一种写法:

let pattern5 = "^[a-z]\\d{2}"

6.用什么结尾,用 $.例子:以字母结尾:

let pattern7 = "[a-z]$"

7.不能用^ .例子:首字母不能是字母:

let pattern8 = "^[^0-9]"

8.判断是否为qq号码的一个简单正则。1.必须是数字开头,2.第一位不能为0 3.qq 一般为5位-11位,所以判断完第一位以后,后面还有4-10位

let pattenqq = "^[1-9]\\d{4,10}$"

9.在正则中 .代表任意字符,*代表0-n位,

10例子:微博中需要匹配出@,#,还有表情,以如下为例子讲解。

let statusText = "@yananan:【动物尖叫合辑】#哈哈哈哈#猫头鹰这么尖叫[偷笑]、@liwuy: 老鼠这么尖叫、兔子这么尖叫[吃惊]、@wyjsn: 莫名奇#小笼包#妙的笑到最后[好爱哦]!~ http://t.cn/zYBuKZ8/"

10.1匹配出@的用户名。分析:@后面是任意位数的字符,然后是 : 不过这个找到这个冒号后,结束这个匹配,查找下一个,添加 ?就是为了防止直接找到最后一个:

let pattern = "@.*?:"

10.2匹配话题

let pattern = "#.*?#"

10.3匹配表情

let pattern = "\\[.*?\\]"

上一篇 下一篇

猜你喜欢

热点阅读