一:什么是正则表达式
正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。
二:正则表达式语法
- ' ^ ' : 表示一个字符串以什么开始,即前缀 hasPrefix:
"^one" : 表示已"one"开始, "oneCat" "oneDog" "one123..."
[^123] : 表示不希望[ ]中的任何字符串出现 - ' $ ' : 表示一个字符串以什么结束,即后缀 hasSuffix:
"Apple$" : 表示以"Apple"结束, "6plusApple"
综合使用:
"^Apple$" : 表示前后都有 "Apple" 字符串
"Apple" : 表示任何包含 "Apple" 的字符串
- ' * ' : 作用于前面一个字符,表示存在个数 ' >= 0 '
"ab*" : "a" , "ab" , "abb" , "abbb..." .... - ' + ' : 表示存在个数 ' >= 1 ', 至少存在一个
"ab+" : "ab", "abb", "abbb..." .... - ' ? ' : 存在或不存在 , 即 0 | 1
"ab?" : "ab" ,"a"
综合使用:
"a?b+$": 以 "b.." 或 "ab..." 结尾的字符串
- " { , } " :表示一个重复的具体范围 ,[可以没有下限,不能没有上限]
"ab{4}" : abbbb
"ab{1,}" : <==> " ab+ "
"ab{0,}" : <==> " ab* "
"ab{0,1}" : <==> " ab? "
"ab{3,5}" : 指有3-5个b - " [ ] " :表示[ ] 内众多字符中的任意一个
"[ab]" : <==> " a|b "
"[a-d]" : a-d任意一个 [abcd]
"^[a-zA-Z_]" : 表示必须以字符串或者下划线开头 - " | " :表示或
"a|b" : a或者b存在
"(a|bcd)ef" : aef 或 bcdef - " . " : 匹配除 \r \n以外的任何单个字符
"a.[0-9]" : a后面跟着一个任意字符和一个数字
"^.{5}$" : 任意一个长度为5的字符串 - " \num " : num是一个正整数,表示" \num "之前的字符出现相同的个数
"(.)\1" : 表示两个连续的相同的字符
"10{1,2}" : 表示数字1后面跟着1或者2个0 ("10","100")。
- 常用的:iOS书写正则表达式,遇到转义字符,多加一个" \ ","^\d+$"
"\d" : ==> [0-9]
"\D" : ==> [^0-9]
"\w" : ==> [a-zA-Z_]
"\W" : ==> [^a-zA-Z_]