iOS 正则表达式

Regular Expression
这是英文的表达,其本身是描述或匹配符合某个句法规则的字符串。至于为啥翻译成正则,表示鬼知道呢。正确规则?

一个正则表达式通常被称为一个pattern(模式)。
一个正则表达式通常有如下的结构:
选择
操作符: |

示例:
gray|grey 表示匹配gray或grey

数量限定
操作符: + ? *

示例:
+表示其前面的字符至少为一个。
goo+gle可以匹配 google, google,gooooooole等。
?表示其前面的字符至多为1个。
colou?r可以匹配 color和colour。
表示其前面的字符可以是n个,n非负数。
0
*42可以匹配 42,042,0042,00042等

范围
操作符()

示例:
(grand)?father可以匹配grandfather或father。
ps:你不会现在就把?操作符的含义给忘记了吧。

基本的规则已经介绍了,剩下的语法规则请google 正则表达式全集。
篇幅所限,没有贴过来,请不要恨我。

好了终于可以说说在iOS中怎么应用正则表达式了。
iOS中提供了NSPredicate类来使用正则表达式。

NSString* regex = @"blahblah";
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
[predicate evaluateWithObject:str];

举个栗子吧,我们以新浪邮箱的注册标准来写一个正则表达式。


9AE87C2D-E358-4CAC-B6EF-52EBB9C5997A.png

NSString* regex = @"^(?!)(?!.*$)\w{4,16}@sina.com";
解释:
^表示匹配字符串的开始。$表示字符串的结束位置。
?!表示在任何不匹配字符的地方开始查找字符串。
.表示除\n以外的任意一个字符。表示任意个数。(你不会又忘了吧)。
?!.
$ 和之前的?!就排除了收尾为下划线的情况。
\w表示字母数字和下划线,等价于[a-zA-Z0-9_]。
{4,16}表示字符的个数4-16位。

要吐学了么?那继续琢磨正则表达式字符全集吧!

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

推荐阅读更多精彩内容

  • iOS中使用正则表达式就不得不提NSRegularExpression,所以我们需要先搞清楚什么是NSRegula...
    sunmumu1222阅读 6,944评论 0 4
  • 一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否...
    见哥哥长高了阅读 6,046评论 6 48
  • 一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否...
    Helen_kay阅读 7,634评论 0 2
  • 前言 开发中经常会用到正则表达式来匹配或者过滤目标字符串,从而提高自己的开发效率。本文主要通过介绍正则表达式,让你...
    横爬介士阅读 10,341评论 0 5
  • 参考:正则表达式、正则表达式30分钟入门教程、正则表达式的使用方法 一、概述 正则表达式(Regular Expr...
    夏天的风_song阅读 6,763评论 0 1