iOS开发之正则表达式

一:什么是正则表达式

正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。

二:正则表达式语法
  1. ' ^ ' : 表示一个字符串以什么开始,即前缀 hasPrefix:
    "^one" : 表示已"one"开始, "oneCat" "oneDog" "one123..."
    [^123] : 表示不希望[ ]中的任何字符串出现
  2. ' $ ' : 表示一个字符串以什么结束,即后缀 hasSuffix:
    "Apple$" : 表示以"Apple"结束, "6plusApple"
    综合使用:
    "^Apple$" : 表示前后都有 "Apple" 字符串
    "Apple" : 表示任何包含 "Apple" 的字符串

  1. ' * ' : 作用于前面一个字符,表示存在个数 ' >= 0 '
    "ab*" : "a" , "ab" , "abb" , "abbb..." ....
  2. ' + ' : 表示存在个数 ' >= 1 ', 至少存在一个
    "ab+" : "ab", "abb", "abbb..." ....
  3. ' ? ' : 存在或不存在 , 即 0 | 1
    "ab?" : "ab" ,"a"
    综合使用:
    "a?b+$": 以 "b.." 或 "ab..." 结尾的字符串

  1. " { , } " :表示一个重复的具体范围 ,[可以没有下限,不能没有上限]
    "ab{4}" : abbbb
    "ab{1,}" : <==> " ab+ "
    "ab{0,}" : <==> " ab* "
    "ab{0,1}" : <==> " ab? "
    "ab{3,5}" : 指有3-5个b
  2. " [ ] " :表示[ ] 内众多字符中的任意一个
    "[ab]" : <==> " a|b "
    "[a-d]" : a-d任意一个 [abcd]
    "^[a-zA-Z_]" : 表示必须以字符串或者下划线开头
  3. " | " :表示或
    "a|b" : a或者b存在
    "(a|bcd)ef" : aef 或 bcdef
  4. " . " : 匹配除 \r \n以外的任何单个字符
    "a.[0-9]" : a后面跟着一个任意字符和一个数字
    "^.{5}$" : 任意一个长度为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_]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考原文:http://www.admin10000.com/document/5944.html 一、什么是正则...
    Louis_hey阅读 866评论 0 1
  • 一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否...
    木马不在转阅读 2,114评论 8 21
  • 推荐几个正则表达式编辑器 Debuggex :https://www.debuggex.com/ PyRegex:...
    木易林1阅读 11,576评论 9 151
  • 3 没有记忆的人生证明你只是在虚度 忽然发现发现我人生前十几年的人生几乎没有什么记忆,就算有也只是偶然之间弹出...
    Deer麓阅读 267评论 0 0
  • 现在的我又开始迷惘了,我确定了考研的方向,可我现在学不进去,不知道为什么,是压力还没到吗,我脑子很空,谁可以让我学进去
    卢小盈阅读 279评论 0 0