🎸
吉他一个使用 Swift 编写的跨平台字符串和正则表达式库。
关于
这个库旨在添加在移动和服务器端开发中都需要的常用字符串操作功能,包括常见的正则表达式功能,但这些功能在 Swift 的标准库中却缺失。
完整文档可在 http://www.sabintsev.com/Guitar/ 找到。
吉他也是 Swift 的 源兼容性套件 的一部分。
功能
- 布尔函数(
isAlpha
、isNumeric
、isUppercase
等) - 大小写转换函数(
camelCased
、pascalCased
、kebabCased
等) - 拉丁字母转换函数(
.latinized()
、.withoutAccents()
) - 填充函数(
padLeft
、padRight
、pad
) - 正则表达式(内置常用模式)
Sherlocked
由于 Apple 将许多这些功能添加到了 Swift 4 语言中(即所谓的 Sherlocking),Guitar 库在 0.3.0 版本中删除了一组小型功能。被删除的功能包括:first, last, length, prefixed, suffixed, trimLeft, trimRight, truncated
。由于行为略有不同,reversed
函数更名为 reversedString
。
安装说明
Swift 版本 | 分支名称 | 是否将继续收到更新? |
---|---|---|
5.1+ | master | 是 |
5.0 | swift5.0 | 否 |
4.2 | swift4.2 | 否 |
4.1 | swift4.1 | 否 |
3.2 | swift3.2 | 否 |
3.1 | swift3.1 | 否 |
CocoaPods
pod 'Guitar' # Swift 5.1+
pod 'Guitar', :git => 'https://github.com/ArtSabintsev/Guitar.git', :branch => 'swift5.0' # Swift 5.0
pod 'Guitar', :git => 'https://github.com/ArtSabintsev/Guitar.git', :branch => 'swift4.2' # Swift 4.2
pod 'Guitar', :git => 'https://github.com/ArtSabintsev/Guitar.git', :branch => 'swift4.1' # Swift 4.1
pod 'Guitar', :git => 'https://github.com/ArtSabintsev/Guitar.git', :branch => 'swift3.2' # Swift 3.2
pod 'Guitar', :git => 'https://github.com/ArtSabintsev/Guitar.git', :branch => 'swift3.1' # Swift 3.1
Swift 包管理器
.Package(url: "https://github.com/ArtSabintsev/Guitar.git", majorVersion: 1)
使用示例
正则表达式
Guitar
使使用正则表达式测试和评估String
对象变得更容易。Guitar.Chord
列出了常用的正则表达式,它们位于 GuitarChord.swift。- GuitarCommon.swift 包含了用于常见的正则表达式评估和测试的便利方法,例如检查字符串是否为有效的电子邮件地址。
初始化
Guitar(pattern: String) // A custom regular expression with which to initialize Guitar.
Guitar(chord: Guitar.Chord) // A common regular expression with which to initialize Guitar.
方法
evaluateForRanges(::)
返回匹配特定正则表达式的范围数组的数组,类型为 [Range
。
Guitar(chord: .firstCharacter).evaluateForRanges(from: "Hello world") // [Range(Swift.String.CharacterView.Index(_base: Swift.String.UnicodeScalarView.Index(_position: 0), _countUTF16: 1)..<Swift.String.CharacterView.Index(_base: Swift.String.UnicodeScalarView.Index(_position: 1), _countUTF16: 1)), Range(Swift.String.CharacterView.Index(_base: Swift.String.UnicodeScalarView.Index(_position: 6), _countUTF16: 1)..<Swift.String.CharacterView.Index(_base: Swift.String.UnicodeScalarView.Index(_position: 7), _countUTF16: 1))]
evaluateForStrings(::)
返回匹配特定正则表达式的字符串数组,类型为 [String]
。
Guitar(chord: .firstCharacter).evaluateForStrings(from: "Hello world") // ["H", "w"]
test(::)
使用特定正则表达式评估字符串。如果在字符串中找到匹配项,则返回 true
。否则,返回 false
。
Guitar(chord: .email).test(string: "[email protected]") // `true`
字符串扩展
此库还通过字符串扩展添加了数十个方法,这些方法在 Swift 标准库中不存在或不易在 String
类中访问。请查看 GuitarBoolean.swift
和 GuitarPadding.swift
以查看示例。
更具体的示例可以在 tests 文件夹中找到。