PathSlicer 1.0.1

PathSlicer 1.0.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布上次发布Jun 2016
SPM支持 SPM

Michał Tynior维护。



PathSlicer

返回关于 Nancy 风格路径字符串(如 /rebels/{name}/{action}/)的信息。

功能

  • [x] 将 Nancy 风格的路径转换为正则表达式
  • [x] 返回捕获组件的参数
  • [x] 允许添加自定义路径组件类型
  • [ ] 支持大小写敏感
  • [ ] 支持可选组件
  • [ ] 支持正则表达式命名校组

集成

要求

  • iOS 9.0+ / Mac OS X 10.9+ / tvOS 9.0+ / watchOS 2.0+
  • Xcode 7.3+

手动

您也可以手动将 PathSlicer 添加到您的项目中

  1. 下载仓库
  2. Sources 文件夹拖到您的项目结构中。

使用

let slicer = PathSlicer()

let path = "/rebels/{name}/{action}"
let pathDescription = slicer.getPathDescription(path)

pathDescription 变量包含以下值

pathDescription = {
    regex = "rebels\\/([^\\\\/]+?)\\/([^\\\\/]+?)(?:\\/(?=$))?$",
    arguments = [ "name", "action" ]
}

支持的段模式

文本段

文本段不包含任何参数,直接匹配。

let slicer = PathSlicer()

let path = "/empire/darth_vader/choke"
let pathDescription = slicer.getPathDescription(path)

pathDescription 变量包含以下值

pathDescription = {
    regex = "/empire/darth_vader/choke(?:\\/(?=$))?$",
    arguments = [ ]
}

捕获段

捕获段允许向路径添加参数。每个捕获段被 {} 包围。捕获段返回在路径描述的 argument 属性中。

let slicer = PathSlicer()

let path = "/empire/{name}/{action}"
let pathDescription = slicer.getPathDescription(path)

pathDescription 变量包含以下值

pathDescription = {
    regex = "empire\\/([^\\\\/]+?)\\/([^\\\\/]+?)(?:\\/(?=$))?$",
    arguments = [ "name", "action" ]
}

正则表达式段

正则表达式段允许定义自定义组件匹配器。目前正则表达式的命名捕获组不会被作为路径描述的参数返回。

let slicer = PathSlicer()

let path = "/can_be_jedi/(?<age>[\\d]{1,2})"
let pathDescription = slicer.getPathDescription(path)

pathDescription 变量包含以下值

pathDescription = {
    regex = "can_be_jedi/(?<age>[\\d]{1,2})(?:\\/(?=$))?$",
    arguments = [ ]
}

许可证

PathSlicer 在 MIT 许可下发布。查看 LICENSE 获取详细信息。