swift 3.0 正则表达式查找/替换字符
1.什么是正则表达式
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
2.正则表达式的字符组成
普通字符【a~z】、特殊字符(称为"元字符")
3.支持
几乎所有的程序设计语言都支持正则表达式,例如:OC,swift,java,c#,python,js等
在很多文本编辑器里,可以使用正则表达式进行检索,Xcode同样支持正则表达式!
4.使用
- 匹配
(pattern)匹配pattern并获取这一匹配,所获取的匹配可以从产生的Matches集合得到 - 集合
[xyz]字符集合(x||y||z)[a-z]字符范围a-z[a-zA-Z]字符范围a-z A-Z[^xyz]负值字符集合 (任何字符, 除了xyz)[^a-z]负值字符范围[a-d][m-p]并集(a到d 或 m到p) - 常用元字符
.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字[a-zA-Z_0-9]\s匹配任意的空白符(空格、TAB\t、回车\r \n)\d匹配数字[0-9]^a匹配字符串的开始a字符a$匹配字符串的结束a字符\bw匹配单词的开始或结束w字符 - 常用反义符
\W匹配任意不是字母,数字,下划线,汉字的字符[^\w]\S匹配任意不是空白符的字符[^\s]\D匹配任意非数字的字符[^0-9]\Ba匹配不是单词开头或结束的位置的a字符[^a]匹配除了a以外的任意字符[^aeiou]匹配除了aeiou这几个字母以外的任意字符 - 常用限定符
w*oo重复零次或更多次w+oo重复一次或更多次w?oo重复零次或一次w{n}w重复n次w{n,}w重复n次或更多次w{n,m}w重复n到m次 - 贪婪和懒惰
*?重复任意次,但尽可能少重复*+重复1次或更多次,但尽可能少重复??重复0次或1次,但尽可能少重复w{1,2}?重复1到2次,但尽可能少重复ww{1,}?重复1次以上,但尽可能少重复
5.实例
// 判断QQ号码(常规判断)
fileprivate func checkIsQQNumber(str:String) ->Bool {
// 1.判断是否以0开头
if str.hasPrefix(""){
return false
}
// 2.判断是否是5~15位
if str.characters.count < || str.characters.count > {
return false
}
// 3.判断是否全部都是数字
for c in str.characters{
if c < "" || c > ""{
return false
}
}
return true
}
// 正则判断手机号码
fileprivate func checkPhoneNumber(str:String)->Bool {
let pattern = "1[3578]\\d{9}"
let regex = try! NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options(rawValue:))
let res = regex.matches(in: str, options: NSRegularExpression.MatchingOptions(rawValue:), range: NSMakeRange(, str.characters.count))
if res.count > {
return true
}
return false
}
swift 3.0 正则表达式查找/替换字符的更多相关文章
- Notepad++正则表达式查找替换文本中文字符
测试需求 测试工具中xml配置文件中注释字段包含中文字符,在Win10系统下使用工具中偶尔会出现中文乱码导致配置文件失效.解决方法将配置文件中的中文注释换成英文注释或者直接替换删除.如何将配置文件中的 ...
- VIM正则表达式查找替换
0. 一些需要注意的不同 VIM中的正则表达式和其他的有点不一样 (1) 有些符号要用\转义,比如\+表示重复一次或以上,其他的还有一些,:h pattern查看(2) 非贪婪匹配用\{-}, 如 ...
- dreamweaver中用正则表达式查找替换批量删除 tppabs标签的方法
查找替换 正则表达式 \btppabs="h[^"]*" 后面不能有空格 你懂得的 选中右下角的 √[使用正则表达式] 替换全部
- 在eclipse中利用正则表达式查找替换
众所周知,eclipse是可以用正则表达式来进行查找的,那么怎么利用正则表达式进行替换呢? 方法也很简单,就是在Replace with: 里面输入$来代表捕获型括号的匹配结果,$1为第一个匹配结果, ...
- eclipse使用技巧---使用正则表达式查找替换
1,Eclipse ctrl+f 打开查找框2,选中 Regular expressions (正则表达式) 去掉/* */(eclipse) /\*(.|[\r\n])*?\*/去掉/ ...
- eclipse使用正则表达式查找替换
1,Eclipse ctrl+f 打开查找框2,选中 Regular expressions (正则表达式) 去掉/* */(eclipse) /\*(.|[\r\n])*?\*/去掉/ ...
- Notepad++ 使用正则表达式查找替换字符串
最近在改一些别人写的PHP代码,由于之前的代码可维护性比较差,因此工作量比较多,因此想找一些高效的方式改一些有规律的代码. 比如: 我想将一些类似$rowss[MaxGetCash_num], ...
- C#后台利用正则表达式查找匹配字符
/// <summary> /// 发送短信 系统固化短信 /// </summary> /// <param name=&qu ...
- 在VS中用正则表达式查找或替换
2005VS和2008VS正则替换规则如下(2013VS不适合,不需要的同学可以直接跳到2013VS的操作办法): Example: 查找#incldue中带有gl开头的头文件的,用include.+ ...
随机推荐
- 2018.07.06 BZOJ1208: HNOI2004宠物收养所(非旋treap)
1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec Memory Limit: 162 MB Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收 ...
- AVL树C++实现
1. AVL 树本质上还是一棵二叉搜索树,它的特点是: 本身首先是一棵二叉搜索树. 带有平衡条件: 每个结点的左右子树的高度之差的绝对值(平衡因子) 最多为 1. 2. 数据结构定义 AVL树节点类: ...
- ics
5.网分用法 时延测试: Format ->Delay Scale Ref -> AUTO SCALE Marker Search -> TRACKING[ON OFF]这样以后把M ...
- SetFocus (GetDlgItem (hwnd, idFocus))函数的各参数的具体含义
Setfocus(HWMD hwnd):将窗口hwnd设置成获得焦点 GetDlgItem (hwnd, idFocus):此函数返回一个句柄 具体参数的含义: hwnd:包含该窗口标志位的对话框的句 ...
- hdu 1164 Eddy's research I
http://acm.hdu.edu.cn/showproblem.php?pid=1164 题意很简单,只是写代码的时候需要注意几个问题 一.筛选素数的时候记得用埃式筛选法,要是直接找可能会WA. ...
- hdu 5024 最长的L型
http://acm.hdu.edu.cn/showproblem.php?pid=5024 找到一个最长的L型,L可以是斜着的 简单的模拟 #include <cstdio> #incl ...
- spring mvc 注解@Controller @RequestMapping @Resource的详细例子
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- Java中对比两个对象中属性值[反射、注解]
在Java中通常要比较两个对象在修改前与修改后的值是否相同,一般我们采用的是反射技术获取对象的get方法[或其他的方法]获取值并做比较.如果系统将修改的属性名称也显示出来,这样就能更直观的显示类中的哪 ...
- asp.net 网站监控方案
前言:监控web网站方法有很多种,这篇文章说一下对windows服务器 asp.net网站的监控 采用的方案,Powershell + Influxdb + Grafana 1.PowerShell ...
- NetCore入门篇:(九)Net Core项目使用Session及用Redis做分布式
一.简介 1.因为Net Core默认是没有启动Session功能的,如果需要使用,需要通过代码开启. 2.本篇说明如果启用默认Session实现,即Session存到内存中. 3.本篇扩展说明如何用 ...