我用的正则表达式

今天有部分功能需要用到正则表达式,去搜索我的需求规则“开头不为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次以上,但尽可能少重复

 

以后有用到的再往上加

 

posted on 2016-08-15 16:25  黑鲤鱼与绿鲤鱼与驴  阅读(267)  评论(0编辑  收藏  举报

导航