iOS 常用正则表达式一览表
刚才看见了一个不错的正则表达式的记录,想起之前在做项目的时候寻找正则表达式的尴尬,所以在此,站在”巨人”的肩膀上,做一个记录,方便以后使用
匹配中文字符的正则表达式:
[\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):
[^\x00-\xff]
匹配空白行的正则表达式:
\n\s*\r
应用场景:可以用来删除空白行
匹配首尾空白字符的正则表达式:
^\s*|\s*$
应用场景:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:
\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*
应用场景:表单验证
匹配网址URL的正则表达式:
[a-zA-z]+://[^\s]*
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
应用场景:表单验证
匹配国内电话号码:
\d{3}-\d{8}|\d{4}-\d{7}
应用场景:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯QQ号:
[1-9][0-9]{4,}
应用场景:腾讯QQ号从10000开始
匹配中国邮政编码:
[1-9]\d{5}(?!\d)
应用场景:中国邮政编码为6位数字
匹配身份证:
\d{15}|\d{18}
应用场景:中国的身份证为15位或18位
匹配ip地址:
\d+.\d+.\d+.\d+
应用场景:提取ip地址时有用
匹配特定数字:
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]\d*.\d*|0.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*.\d*|0.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0)$ //匹配浮点数
^[1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*.\d*|0.\d*[1-9]\d*))|0?.0+|0$ //匹配非正浮点数(负浮点数 + 0)
应用场景:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
匹配中文:
[\u4e00-\u9fa5]
英文字母:
[a-zA-Z]
数字:
[0-9]
匹配中文,英文字母和数字及_:
“^[\u4e00-\u9fa5_a-zA-Z0-9]+$”
同时判断输入长度:
[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}
^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$
汉字、数字、字母、下划线不能以下划线开头和结尾:
^(?!)(?!.*?)[a−zA−Z0−9\u4e00−\u9fa5]+)[a-zA-Z0-9_\u4e00-\u9fa5]+
其中:
[a-zA-Z0-9_\u4e00-\u9fa5]+ 至少一个汉字、数字、字母、下划线
^ 与字符串开始的地方匹配(?!_) 不能以横杠开头
(?!.*?_$) 不能以横杠结尾
只含有汉字、数字、字母、下划线,下划线位置不限:
^[a-zA-Z0-9_\u4e00-\u9fa5]+$
匹配月份的正则表达式
^[1-9]|1[0−2]|^1[0-2]
注:个位数月份匹配方式 前面不能加 0。
^0?[1-9]|1[0−2]|^1[0-2]
注:个位数月份前可以加0或者不加。
匹配年份19或者20
^(19|20)[0-9]{2}$
代码:
实现思路: 自定义一个 NSString的延展(NSString+StringExtension),在延展中实现以下方法,哪里验证,调用该延展方法即可
//验证邮箱
+ (BOOL)isEmailAddress:(NSString*)candidate
{NSString* emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";NSPredicate* emailTest = [NSPredicate predicateWithFormat:@"self MATCHES %@", emailRegex];return [emailTest evaluateWithObject:candidate];
}-(NSNumber *)asNumber;{NSString *regEx = @"^-?\\d+.?\\d?";NSPredicate * pred = [NSPredicate predicateWithFormat:@"self MATCHES %@", regEx];BOOL isMatch = [pred evaluateWithObject:self];if (isMatch) {return [NSNumber numberWithDouble:[self doubleValue]];}return nil;
}
//验证用户名(长度3 -- 20个汉字)
- (BOOL)isUserName
{NSString * regex = @"(^[A-Za-z0-9]{3,20}$)";NSPredicate * pred = [NSPredicate predicateWithFormat:@"self MATCHES %@", regex];return [pred evaluateWithObject:self];
}
//验证密码(长度 6 -- 20)
- (BOOL)isPassword
{NSString * regex = @"(^[A-Za-z0-9]{6,20}$)";NSPredicate * pred = [NSPredicate predicateWithFormat:@"self MATCHES %@", regex];return [pred evaluateWithObject:self];
}- (BOOL)isEmail
{NSString * regex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";NSPredicate * pred = [NSPredicate predicateWithFormat:@"self MATCHES %@", regex];return [pred evaluateWithObject:self];
}
//验证URL
- (BOOL)isUrl
{NSString * regex = @"http(s)?:\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- .\\/?%&=]*)?";NSPredicate * pred = [NSPredicate predicateWithFormat:@"self MATCHES %@", regex];return [pred evaluateWithObject:self];
}
//验证手机号
- (BOOL)isTelephone
{NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";NSString * CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$";NSString * CU = @"^1(3[0-2]|5[256]|8[56])\\d{8}$";NSString * CT = @"^1((33|53|8[09])[0-9]|349)\\d{7}$";NSString * PHS = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"self MATCHES %@", MOBILE];NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"self MATCHES %@", CM];NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"self MATCHES %@", CU];NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"self MATCHES %@", CT];NSPredicate *regextestphs = [NSPredicate predicateWithFormat:@"self MATCHES %@", PHS];return [regextestmobile evaluateWithObject:self] ||[regextestphs evaluateWithObject:self] ||[regextestct evaluateWithObject:self] ||[regextestcu evaluateWithObject:self] ||[regextestcm evaluateWithObject:self];
}
iOS 常用正则表达式一览表相关推荐
- IOS常用正则表达式
IOS常用正则表达式 正则表达式用于字符串处理.表单验证等场合,实用高效.现将一些常用的表达式收集于此,以备不时之需. 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是 ...
- 常用正则表达式一览表
一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9 ...
- iOS中正则表达式的基本使用方法
一.第三方框架RegexKitLite的使用 在ios项目中可以借用第三方框架RegexKitLite来简化对正则表达式的使用,使用方法如下 1.去RegexKitLite下载类库,解压出来会有一个例 ...
- ios 一个正则表达式测试(只可输入中文、字母和数字)
在项目中碰到了正则表达式的运用,正则还是非常强大的,不管什么编程语言,基本上都可以用到.之前在用java时特别是对用户名或密码使用正则非常爽,写 脚本上用正则也非常爽,可是到了OC这却把我虐了一把,可 ...
- iOS中正则表达式封装好的第三方文件
iOS中正则表达式封装好的第三方文件 我已经上传了资源哦~ 需要的话可以去下载哦 #import <Foundation/Foundation.h> #import "NSSt ...
- IOS使用正则表达式去掉html中的标签元素,获得纯文本
IOS使用正则表达式去掉html中的标签元素,获得纯文本 content是根据网址获得的网页源码字符串 NSRegularExpression *regularExpretion=[NSRegular ...
- 常用正则表达式合集与工具
any-rule 维护了一个常用正则表达式合集,并且本身是一个支持 Web/VS Code/idea/Alfred Workflow 多平台的正则表达式工具. image 安装 VS Code 应用商 ...
- Python正则匹配HTML,python正则匹配html标签_Python爬虫常用正则表达式及HTML网页标签分析总结...
这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬 ...
- 常用和不常用端口一览表收藏
大家在学习计算机的时候,对于最常用的几个端口比如80端口肯定有很深的印象,但是对于其他一些不是那么常用的端口可能就没那么了解.所以,在一些使用频率相对较高的端口上,很容易会引发一些由于陌生而出现的错误 ...
- 转载:常用正则表达式大全!(例如:匹配中文、匹配html)
常用正则表达式大全!(例如:匹配中文.匹配html) 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[ ...
最新文章
- android:windowBackground 和 android:background 的区别
- 脑与神经科学3 脑神经影像上
- xml.etree ElementTree简介
- zlib.h: 没有那个文件或目录
- 反编译android 状态栏沉浸,教程:反编译修改实现状态栏时间居左,去除锁屏运营商...
- 华为Mate 40系列还有新升级:有望首发66W超级快充
- 阿里动物园再添新丁,小蛮驴搞定物流最后三公里!
- java中的变量是原子的_Java原子变量
- [算法模板]莫比乌斯反演
- 校园网免认证登录连接
- C与C++学习经典网站
- 微信小程序实现海报功能经历
- 计算机网络——wireshark抓包
- 周记一:要有一颗屹立不倒的恒心
- GOTC 2023全球开源技术峰会
- Blender 显示键盘和鼠标操作
- UCK商学院《当区块链遇见UCK》人物专访——张伟杰:区块链给90后带来新的机遇
- 我有一台云服务器,可以干什么?
- 知行学徒人脸识别伪造
- 两院院士评选“2021年中国/世界十大科技进展新闻”揭晓
热门文章
- 领域驱动设计落地经验
- Android 回声消除
- 如何卸载 Adobe Creative Cloud 桌面应用程序
- macOS SwiftUI教程之 Menu菜单组件基础使用(教程含源码)
- 你还因为缺“Java项目经验”找不到工作?适合应届生的20个“项目经验”送给你
- iphone配置实用工具出错解决
- 工程经济作业1答案_工程经济学1、2、3、4(作业1答案)
- 中标麒麟linux系统安装打印机_国产中标麒麟操作系统的打印机安装
- Python数据库编程之pymysql详解
- varchar2(数值)和varchar2(数值 char)的说明