该库旨在添加移动和服务器端开发中都需要,但在 Swift 标准库中缺失的常用字符串操作功能,包括常用正则表达式功能。
完整文档请访问 http://www.sabintsev.com/Guitar/。
Guitar 也是 Swift 源代码兼容性套件 的一部分。
isAlpha, isNumeric, isUppercase 等)camelCased, pascalCased, kebabCased 等).latinized(), .withoutAccents())padLeft, padRight, pad)Guitar 库 v0.3.0 版本中移除了一小部分函数,因为 Apple 在 Swift 4 语言中添加了许多这些功能 (也就是 Sherlocking)。被移除的函数包括:first, last, length, prefixed, suffixed, trimLeft, trimRight, truncated。reversed 函数被重命名为 reversedString,因为它与 Swift 内置的 reversed 函数的行为略有不同。
| Swift 版本 | 分支名称 | 是否继续接收更新? |
|---|---|---|
| 5.1+ | master | 是 |
| 5.0 | swift5.0 | 否 |
| 4.2 | swift4.2 | 否 |
| 4.1 | swift4.1 | 否 |
| 3.2 | swift3.2 | 否 |
| 3.1 | swift3.1 | 否 |
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
.Package(url: "https://github.com/ArtSabintsev/Guitar.git", majorVersion: 1)
Guitar 使使用正则表达式测试和评估 String 对象变得更加容易。Guitar.Chord 枚举了常用正则表达式,它们位于 GuitarChord.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<String.Index>],匹配特定的正则表达式。
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: "hello@world.com") // `true`
该库还通过 String 扩展添加了数十种 Swift 标准库中缺失或在 String 类上不易访问的方法。请查看 GuitarBoolean.swift 和 GuitarPadding.swift 以查看这些示例。
更多具体示例可以在 tests 文件夹中找到。