博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我用的正则表达式
阅读量:6062 次
发布时间:2019-06-20

本文共 3199 字,大约阅读时间需要 10 分钟。

今天有部分功能需要用到正则表达式,去搜索我的需求规则“开头不为0,整数”,试了很多都不实用,感叹之余,只能自己研究写出合适的规则。由于用户输入可能一直输入00000再输入123,所以我就需要截取出来开头不为0的整数。

一、开头不为0,整数

#pragma mark - 正则表达式,判断价格- (NSString*)checkNumber:(NSString*) Number{//    制定规则    NSString* pattern = @"[1-9][0-9]*?$";
/* 参数options     NSRegularExpressionCaseInsensitive            匹配规则中的字符串 忽略大小写     NSRegularExpressionAllowCommentsAndWhitespace  忽略空白和# 前缀在匹配规则     NSRegularExpressionIgnoreMetacharacters        把整个字符串作为 匹配规则     NSRegularExpressionDotMatchesLineSeparators    允许 .  来匹配任意字符 包括 换行符     NSRegularExpressionAnchorsMatchLines           允许^ $ 来匹配 开始和结束     NSRegularExpressionUseUnixLineSeparators        把/n作为分隔符     NSRegularExpressionUseUnicodeWordBoundaries     Use Unicode TR#29 to specify word boundaries (otherwise, traditional regular expression word boundaries are used).     */
 
NSRegularExpression *regular= [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];//    结果    NSTextCheckingResult *result =  [regular firstMatchInString:Number options:NSMatchingReportCompletion range:NSMakeRange(0, Number.length)];        NSString* str = [Number substringWithRange:result.range];        return str;    }

 

之前还用过一个判断手机号码的,也贴一下

二、判断是不是手机号

#pragma mark - 正则表达式,判断手机号码- (NSTextCheckingResult*)checkTelNumber:(NSString*) telNumber{        NSString* pattern = @"^1+[3578]+\\d{9}";    NSRegularExpression *regular= [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];        NSTextCheckingResult *result =  [regular firstMatchInString:self.phoneNumberTF.text options:NSMatchingReportCompletion range:NSMakeRange(0, self.phoneNumberTF.text.length)];                return result;    }

 

三、还有其他需要的查不到、自己可以想想怎么写

在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。-在很多文本编辑器里,可以使用正则表达式进行检索,Xcode同样支持正则表达式!-几乎所有的程序设计语言都支持正则表达式,例如:OC,java,c#,python,js等。0>    匹配(pattern)        匹配pattern并获取这一匹配,所获取的匹配可以从产生的Matches集合得到1>    常用元字符--------------------------------------------------------------------------------.            匹配除换行符以外的任意字符\w            匹配字母或数字或下划线或汉字\s            匹配任意的空白符(空格、TAB\t、回车\r \n)\d            匹配数字^            匹配字符串的开始$            匹配字符串的结束\b            匹配单词的开始或结束2>    常用反义符--------------------------------------------------------------------------------\W        匹配任意不是字母,数字,下划线,汉字的字符\S            匹配任意不是空白符的字符\D            匹配任意非数字的字符\B            匹配不是单词开头或结束的位置[^x]        匹配除了x以外的任意字符[^aeiou]    匹配除了aeiou这几个字母以外的任意字符3>    集合--------------------------------------------------------------------------------[xyz]        字符集合[^xyz]        负值字符集合[a-z]        字符范围[^a-z]        负值字符范围4>    常用限定符--------------------------------------------------------------------------------*            重复零次或更多次+            重复一次或更多次?            重复零次或一次{n}            重复n次{n,}        重复n次或更多次{n,m}        重复n到m次5>    贪婪和懒惰--------------------------------------------------------------------------------*?            重复任意次,但尽可能少重复*+            重复1次或更多次,但尽可能少重复??            重复0次或1次,但尽可能少重复{n,m}?      重复n到m次,但尽可能少重复{n,}?        重复n次以上,但尽可能少重复

 

以后有用到的再往上加

 

转载于:https://www.cnblogs.com/yeschenbaby/p/5773418.html

你可能感兴趣的文章
2016年,移动开发领域有哪些最佳实践值得参考?
查看>>
io.js 1.0.x发布
查看>>
与JavaScript恋爱之React(二)
查看>>
如何评估AI在医学影像识别中的应用效果?
查看>>
阿里巴巴和京东进军美国电商界,分别针对企业用户和普通用户
查看>>
又拍云再放大招,CDN同时支持HTTP/2和SPDY/3.1协议
查看>>
贝壳金控赵文乐:基于 Spring Cloud 的服务治理实践
查看>>
“Designing Delivery”图书评论与访谈
查看>>
Java Nestmate稳步推进
查看>>
精益业务分析宣言解读
查看>>
Slack桌面3.0迁移到BrowserView
查看>>
《大规模Scrum:More with LeSS》访谈
查看>>
GitHub上的编程语言:JavaScript领衔Java次之
查看>>
开源项目的最佳实践
查看>>
Istio调用链埋点原理剖析—是否真的“零修改”?
查看>>
华为敏捷/DevOps实践:如何开好站立会议
查看>>
C# 8的新提案:new关键字类型推断
查看>>
微软投资混合连接,发布本地数据网关
查看>>
腾讯云DevOps技术揭秘:新时代运维重器Tencent Hub最佳实践
查看>>
[deviceone开发]-viewShower和listView
查看>>