吉他 🎸

一个用 Swift 编写的跨平台字符串和正则表达式库。

Build Status Platform

Swift Support CocoaPods SwiftPM Compatible

关于

该库旨在添加移动和服务器端开发中都需要,但在 Swift 标准库中缺失的常用字符串操作功能,包括常用正则表达式功能。

完整文档请访问 http://www.sabintsev.com/Guitar/

Guitar 也是 Swift 源代码兼容性套件 的一部分。

特性

Sherlocked(被苹果“抄袭”的功能)

Guitar 库 v0.3.0 版本中移除了一小部分函数,因为 Apple 在 Swift 4 语言中添加了许多这些功能 (也就是 Sherlocking)。被移除的函数包括:first, last, length, prefixed, suffixed, trimLeft, trimRight, truncatedreversed 函数被重命名为 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

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 Manager

.Package(url: "https://github.com/ArtSabintsev/Guitar.git", majorVersion: 1)

使用示例

正则表达式

初始化

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 扩展

该库还通过 String 扩展添加了数十种 Swift 标准库中缺失或在 String 类上不易访问的方法。请查看 GuitarBoolean.swiftGuitarPadding.swift 以查看这些示例。

更多具体示例可以在 tests 文件夹中找到。

灵感来源

创建和维护者

Arthur Ariel Sabintsev