正则表达式

在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 = "\\[.*?\\]"

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考原文:http://www.admin10000.com/document/5944.html 一、什么是正则...
    Louis_hey阅读 863评论 0 1
  • 一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否...
    Suger_森阅读 363评论 0 0
  • 原文:http://www.cnblogs.com/yipingios/p/5536032.html 一、什么是正...
    num_one阅读 176评论 0 0
  • 一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否...
    木马不在转阅读 2,069评论 8 21
  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 2,180评论 0 9