0524.深入浅出理解iOS常用的正则表达式—基础篇[Foundation]

参考资料:cocoachina的zys475481075的文章

几个单词

Regular 
[‘regj?l?]
adj.
定期的;有规律的

Expression
[?k‘spre?(?)n;
ek-] n.
表现,表示

Regular
expression
正则表达式

什么是正则表达式?

用一个描述字符串去验证另一个字符串是否符合描述字符串的特征。(不严谨,可以这么理解)

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

正则表达式用来干嘛?

常用到的几种方式:

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

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"

0524.深入浅出理解iOS常用的正则表达式—基础篇[Foundation]

时间: 2024-10-05 03:53:08

0524.深入浅出理解iOS常用的正则表达式—基础篇[Foundation]的相关文章

iOS开发学习笔记:基础篇

iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境),Xcode是一个集成开发环境,包括了编辑器.调试.模拟器等等一系列方便开发和部署的工具,iOS SDK则是开发应用所必需,不同的SDK分别对应不同的iOS版本或设备,通常我们需要下载多个iOS SDK以确保我们开发的程序能够在不同版本的iOS上正常运行. 创建新工程 Xcode提供了很多种工程模

ios常用的正则表达式

正则表达式用于字符串处理和验证等场合: 匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />评注:网上流传的版本太糟糕,

iOS常用的正则表达式总结

/* 正则表达式说明: . 匹配除换行符以外的任意字符 \\w 匹配字母或数字或下划线或汉字 \\s 匹配任意的空白符 \\d 匹配数字 \\b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 \\W 匹配任意不是字母,数字,下划线,汉字的字符 \\S 匹配任意不是空白符的字符 \\D 匹配任意非数字的字符 \\B 匹配不是单词开头或结束的位置

Linux正则表达式——基础篇

一.什么是正则表达式 简单地说,正则表达式就是处理字符串的方法,它是以行为单位进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找.删除.替换某特定字符串的处理程序. 正则表达式基本上是一种"表示法",只要工具程序支持这种表示法,那么该工具程序就可以用来作为正则表达式的字符串处理之用.例如:vi,grep,awk,sed 正则表达式的字符串表达方式依照不同的严谨度而分为基础正则表达式与扩展表达式,扩展表达式除了简单的一组字符串处理外,还可以做组的字符串处理.

linux 正则表达式基础篇

========  尖括号^ :例:^work:表示以work开头的内容========  $:            work$: 表示以work结尾的内容 ========  ^$:表示空行,不是空格 ========  . 代表且只能代表任意一个字符========  \ 代表转意字符(让代表特殊意义的字符返回原形)例子: \.:只表示小数点========  * 重复0个或者多个前面的字符,不代表所有了========  .* 匹配所有的字符.========  ^.* 任意多个字符开头

正则表达式基础篇

正则表达式必知必会正则表达式用处:搜索与替换简单的开始:1.匹配单个字符:.匹配任何一个字符(除去换行符)\加上一个特殊字符:如\\,\d,\w,2.匹配一组字符:[]不匹配任何字符,自用来定义一个字符集合:如[ab]:必须匹配a或b,可用来处理大小写问题[Aa],当然也可以用\i(SAS里面的):[0-9]匹配0到9的数字,[A-Z]匹配A到Z的英文字母:[A-Za-z0-9]表示A-Z和a-z和0-9:[^0-9]表示不匹配0-9的任意数字:若要匹配[]本身,需要反斜杠\[ \]注:-连字符

chrome浏览器开发常用快捷键之基础篇-遁地龙卷风

1.标签页和窗口快捷键 打开新的标签页,并跳转到该标签页 Ctrl + t 重新打开最后关闭的标签页,并跳转到该标签页 Ctrl + Shift + t 跳转到下一个打开的标签页 Ctrl + PgDn 跳转到上一个打开的标签页 Ctrl + PgUp 跳转到特定标签页 Ctrl + 1 到 Ctrl + 8 跳转到最后一个标签页 Ctrl + 9 打开当前标签页浏览记录中记录的上一个页面 Alt + 向左箭头键 打开当前标签页浏览记录中记录的下一个页面 Alt + 向右箭头键 关闭当前标签页

iOS开发初体验---基础篇

一.苹果网站文档使用方法(www.developer.apple.com) 1.Develop2..Documentation3.Documentation Archive4.Languages & Utilities5.Programming with Objective-C 二.xcode苹果手机模拟器使用 1. 返回主界面Home commond + shift + H2. 删除后台运行的程序 commond + shift + HH3. 切换屏幕横竖屏 commond + left ri

python+selenium自动测试之WebDriver的常用API(基础篇一)

基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里 一.对浏览器操作 1 driver = webdriver.Chrome() # 初始化chrome 2 driver1 = webdriver.Firefox() # 初始化Firefox 3 driver2 = webdriver.Ie() # 初始化IE 4 driver3 = webdriver.Edge() # # 初始化Edge 5 driver.get("https://www.baidu