吉他 1.2.0

Guitar 1.2.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新发布2020年11月
SPM支持 SPM

Arthur Ariel Sabintsev 维护。



Guitar 1.2.0

吉他🎸

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

Build Status Platform

Swift Support CocoaPods SwiftPM Compatible

关于

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

完整文档可在 http://www.sabintsev.com/Guitar/ 找到。

吉他也是 Swift 的 源兼容性套件 的一部分。

功能

  • 布尔函数(isAlphaisNumericisUppercase等)
  • 大小写转换函数(camelCasedpascalCasedkebabCased等)
  • 拉丁字母转换函数(.latinized().withoutAccents()
  • 填充函数(padLeftpadRightpad
  • 正则表达式(内置常用模式)

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.swiftGuitarPadding.swift 以查看示例。

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

灵感来源

创建和维护者:

Arthur Ariel Sabintsev