參考资料:cocoachina的zys475481075的文章

几个单词

Regular ['regjʊlə]adj.
定期的;有规律的

Expression[ɪk'spreʃ(ə)n;
ek-] n.
表现。表示

Regularexpression正則表達式

什么是正則表達式?

用一个描写叙述字符串去验证还有一个字符串是否符合描写叙述字符串的特征。(不严谨,能够这么理解)

思考:比方表达式“12+”。描写叙述的意思是一个1和随意个2组成的字符串,那么'12'、’122‘、'122'….都符合描写叙述特征

正則表達式用来干嘛?

经常使用到的几种方式:

1、验证字符串是否符合指定要求:比方验证邮箱格式、password个数等等

2、查找符合指定要求的字符串。这个比从父串中查找子串方便太多

3、替换,更强大

思考:正则的用途无非2种,验证、字符串的处理(查找、替换、删除之类)

正則表達式的基础知识

一、单种匹配,匹配一次

1、普通字符:字母、数字、汉字、下划线、没有特殊定义的标点

举例::表达式"c",匹配字符串"adasc"。匹配结果:"c"。匹配位置:始于4,结束于5

2、转义字符:有特殊意义的字符。採用前面‘\+字母’的方式替换原字符

表达式

匹配特征

\r

回车

\n

换行符

\t

制表符

\\

代表\本身

\^

匹配^本身

\$

匹配$本身

\.

匹配.本身

举例:表达式"\$d",在匹配字符串"sas$d132"。匹配结果:"$d",匹配位置:始于3。结束于5

二、多种匹配,匹配一次

1、固定的多种匹配(匹配一次)

表达式

匹配特征

\d

0~9的随意一个

\w

A-Z,a-z,0-9,_中的随意一个

\s

空格、制表符、换页符的随意一个

.

匹配除了\n外的随意一个

举例:表达式"a.\d",匹配"123ab11d",匹配结果:"ab1",匹配位置:始于3。结束于6

2、自己定义的多种匹配(匹配一次)

使用方括号[],意思是匹配方括号中面的随意一个字符,[^]那就是匹配方括号中面字符以外的随意一个字符

表达式

匹配特征

[abc1]

"a"、"b"、"c"、"1"中的随意一个字符

[^abc]

除了"a"、"b"、"c"以外的随意一个字符

[a-f]

a到f之间随意一个字符

[^a-f]

除了a到f之间以外的随意一个字符

举例:表达式"[^123][456]",匹配"12345678",匹配的结果"45",匹配位置:始于3,结束于5

思考:理解[]代表当中随意一个字符。^代表字符以外的随意字符就可以

三、多种匹配,匹配多次

假设想要实现多次匹配,那么就要告诉描写叙述的表达式你想要匹配几次,这个东西就是"次数修饰",有一点须要注意的是"次数修饰"放到"被修饰的表达式"后面

表达式

匹配特征

{n}

匹配n次

{m,n}

匹配m~n之间的次数

{m,}

匹配 >=m次

匹配 0~1中间的次数

*

匹配 >=0次

+

匹配 >=1次

举例:表达式"\d?[ab]*",匹配"abc123",匹配结果:"ab"匹配始于0。结束于2

思考:次数修饰符放到表达式后面用以表示反复的次数就可以

四、特殊匹配

表达式

意义

^

与字符串開始的地方匹配

$

与字符串结束的地方匹配

\b

匹配一个单词的边界。也就是单词和空格之间的位置(不匹配不论什么字符,一边是\w。一边是非\w)

|

前后2个表达式是"或"的关系

()

1、在被修饰匹配次数的时候。括号代表一个总体

2、去匹配结果的时候。括号内的匹配内容能够被单独取到

举例1:表达式"\bstart\b",匹配"go,start,end",匹配结果是"start"

举例2:表达式"(go)+",匹配"let's
gogo",匹配结果是"go go"

举例3:表达式"$(\d+\.\d*)",匹配"$12.33",匹配结果"$12.33"。

单独获取括号中面的内容:"12.33"

深入浅出理解iOS经常使用的正則表達式—基础篇[Foundation]的更多相关文章

  1. 正則表達式基础及java使用

    正則表達式基础 正則表達式语法(1)     普通字符:字母,数字.汉子,下划线以及没有特殊定义的标点符号都是"普通字符".表达式中的普通字符.在匹配一个字符串的时候,匹配与之同样 ...

  2. apache rewrite 正則表達式基础

    用了好几次rewrite,用的次数不是非常多,每次都忘,都得又一次上网上找一堆现看,总结一下,以免以后忘了 =====================分隔符===================== ...

  3. Python——正則表達式(2)

    本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ======================== ...

  4. JAVA中正則表達式总结

    昨天,我的朋友请教我正則表達式.我也好久没有写过正則表達式了,昨天刚好看了下如鹏网创始人杨中科老师关于正則表達式的解说.使我加深了正則表達式的印像.现我把他总结下: 很多语言,包含Perl.PHP.P ...

  5. python进阶十_正則表達式(一)

    近期状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思全然不在点上,希望能够借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,假设真的是我自己的问题呢,曾经我 ...

  6. 使用正則表達式的格式化与高亮显示json字符串

    使用正則表達式的格式化与高亮显示json字符串 json字符串非常实用,有时候一些后台接口返回的信息是字符串格式的,可读性非常差,这个时候要是有个能够格式化并高亮显示json串的方法那就好多了,以下看 ...

  7. JavaScript正則表達式知识汇总

    Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegE ...

  8. JAVA中正則表達式总结(具体解释及用途)

    很多语言,包含Perl.PHP.Python.JavaScript和JScript,都支持用正則表達式处理文本,一些文本编辑器用正則表達式实现高级"搜索-替换"功能.所以JAVA语 ...

  9. iOS正則表達式(一)

    什么是正則表達式? 正則表達式是对字符串操作的一种逻辑公式. 作用? 在iOS开发中我们通常使用正則表達式来匹配给定的字符串是否符合我们的业务逻辑,比方说用户注冊帐号仅仅能是手机号或者邮箱等.我们还能 ...

随机推荐

  1. 苹果的HomeKit协议

    苹果的HomeKit协议非常底层,其作用仅限于让iOS平台和家居设备能够相互“握手”,但“认识”之后,想要继续控制灯.空调等设备,仍然需要家电厂商在HomeKit的基础上进行二次开发.

  2. LDAP缓存命令

    启动cacao及实例: [root@rusky bin]# cd /home/ldap/iamldap/dsee6/cacao_2/cacao/bin [root@rusky bin]# ./caca ...

  3. wpf-DataTemplate应用

    在WPF中,决定数据外观的是DataTemplate,即DataTemplate是数据内容的表现形式,一条数据显示成什么样子,是简单的文本还是直观的图形,就是由DataTemplate决定的.下面通过 ...

  4. python 下的数据结构与算法---4:线形数据结构,栈,队列,双端队列,列表

    目录: 前言 1:栈 1.1:栈的实现 1.2:栈的应用: 1.2.1:检验数学表达式的括号匹配 1.2.2:将十进制数转化为任意进制 1.2.3:后置表达式的生成及其计算 2:队列 2.1:队列的实 ...

  5. Swift缩水版MJExtension - Reflect的基本使用

    github:https://github.com/CharlinFeng/Reflect 直接拖拽Reflect文件夹到您的项目中即可,无任何第三方依赖!文件夹结构说明:.Coding 归档相关.R ...

  6. Android小试牛刀之遇到的问题

    1.运行出错 创建项目时没有使用Empty Activity,创建. 2.创建第一个工程 选择Empty Activity才会自动创建Hello Word代码块 3.appcompat_v7的说明 在 ...

  7. 表单验证提交——submit与button

    之前做东西接触过表单验证提交,但是都是为了完成工作,做完就做完了,没有注过表单验证提交有几种方法,各方法都有啥区别.今天瞎折腾了一下,对他们研究了一下,如下是我个人的理解: submit: 从字面上看 ...

  8. dubbo No provider available for the service com.alibaba.dubbo.monitor.MonitorService from registry

    No provider available for the service com.alibaba.dubbo.monitor.MonitorService from registry http:// ...

  9. iOS:界面适配--iPhone不同机型适配 6/6plus

    iOS:界面适配--iPhone不同机型适配 6/6plus        机型变化 坐标:表示屏幕物理尺寸大小,坐标变大了,表示机器屏幕尺寸变大了: 像素:表示屏幕图片的大小,跟坐标之间有个对应关系 ...

  10. Bloglines订阅Blog部落格RSS网摘 - Blog透视镜

    网络信息蓬勃发展,Blog部落格越来越普及,如果逐一地去浏览网站,势必费时费力,倘若信息可以自己送上门,那就可以节省不少时间,就好像看报纸的标题,有兴趣才点连结,进到网站浏览文章内容,Blogline ...