欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

Swift 中的 RegexBuilder学习指南,

来源: 开发者 投稿于  被查看 41079 次 评论:70

Swift 中的 RegexBuilder学习指南,


目录
  • 前言
  • Regex 字面量
    • RegexBuilder - 像写代码一样写正则
    • RegexRepetitionBehavior
  • Foundation 的支持
    • 总结

      前言

      在我们日常的项目开发中,经常会碰到和正则表达式打交道的时候。比如用户密码,通常会要求同时包含小写字母、大写字母、数字,并且长度不少于 8 位,以此来提高密码的安全性。

      在 Swift 中,我们可以用正则表达式的字面量方式来进行实现。

      Regex 字面量

      Regex 字面量实现代码:

      let regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/
      let text = "Aa11111111"
      print(text.matches(of: regex).first?.output) // Optional("Aa11111111")
      

      通过上述代码可以看到,//通过两个斜线就可以来生成正则的字面量。用字面量的方式确实可以使代码很简洁,但简洁的代价就是很难看懂,对后面的代码维护也造成了很大的困难。

      就像网上盛传的一句梗一样:“我有一个问题,所以我写了一个正则表达式。现在,我有了两个问题。”

      用户评论