AGString 2.0.0

AGString 2.0.0

TylerSwiftAlgorithmClub 维护。



AGString 2.0.0

  • 作者:
  • AGString

AGString Logo

Swift 5.0 Version Platform Carthage Compatible SPM

SPM SPM SonarSwift

AGString

AGString 是一个用于方便处理 Swift String 的扩展。

AGRegex 是 NSRegularExpression 的封装。它提供了一种简单易用的迭代方式来使用正则表达式。

特性

  • AGString 将 'String 类型' 指定给 'Int-Index' 基于引用

    • 使用 Int 索引获取字符对象
    • 使用 Range 获取子字符串对象
    • 字符串实用方法(zfill, countOccurence, ltrim, rtrim ...)
  • AGRegex

    • 为 String 提供 NSRange 扩展
    • 获取所有匹配结果为 AGMatch 结构。
    • 支持迭代方式使用匹配结果
    • 将匹配的字符串替换为其他字符串

示例

示例应用程序是查看 AGString 动作的最佳方式。只需打开 AGString.xcodeproj 并运行 Example 方案。

安装

CocoaPods

AGString可通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中

pod 'AGString'

Carthage

Carthage是一种去中心化的依赖管理工具,它构建您的依赖并为您提供二进制框架。要使用Carthage将AGString集成到Xcode项目中,请在您的Cartfile中指定它

github "SwiftAlgorithmClub/AGString"

运行carthage update构建框架,并将构建的AGString.framework拖放到您的Xcode项目中。在“应用目标”的“构建阶段”设置标签页中,点击“+”图标,选择“New Run Script Phase”,并添加Carthage Getting started Step 4, 5 and 6中提到的框架路径

AGString 使用方法

分割

var str = "Hello, World!"
str[1..<3]  // "el"
str[7...9]  // "Wor"
str[7...]   // "World!"
str[..<5]   // "Hello"
str[...5]   // "Hello,"

CharAt

var str = "Hello, World!"
str[1] // "e"

Trim

"     abcd    ".trimLeft()
// "abcd    "
"     abcd    ".trimRight() 
// "     abcd"
"     abcd    ".trim()
//"abcd"

单词计数

let str = "like in like"
str.occurence(of: "like")   //  2

Zfill

let str = "abc"
str.zfill(10)                                 // "0000000abc"
str.zfill(10, with: "1", direction: .right)   // "abc1111111"

AGRegex 使用

查找所有

let r = try! NSRegularExpression(pattern: "ai", options: [])
let regex = AGRegex(r)
regex.findAll("The rain in Spain")
/* 
[
  AGMatch(start: 5, end: 7, base: str, groups: ["ai"]),
  AGMatch(start: 14, end: 16, base: str, groups: ["ai"]),
]
*/

第一个

let r = try! NSRegularExpression(pattern: "ai", options: [])
let regex = AGRegex(r)
regex.first("The rain in Spain")
// AGMatch(start: 5, end: 7, base: str, groups: ["ai"])

最后一个

let r = try! NSRegularExpression(pattern: "ai", options: [])
let regex = AGRegex(r)
regex.last("The rain in Spain")
// AGMatch(start: 14, end: 16, base: str, groups: ["ai"])

子串

let r = try! NSRegularExpression(pattern: "ai", options: [])
let regex = AGRegex(r)
regex.last("The rain in Spain")
// AGMatch(start: 14, end: 16, base: str, groups: ["ai"])
let r = try! NSRegularExpression(pattern: "\\s", options: [])
let regex = AGRegex(r)
regex.sub(str: "The rain in Spain", replace: "9")
// The9rain9in9Spain
regex.sub(str: str, replace: "9", count: 2)
subWithCount == "The9rain9in Spain"
// "The9rain9in Spain"

查找迭代

let r = try! NSRegularExpression(pattern: "([A-Z]+)([0-9]+)", options: [])
let regex = AGRegex(r)
for m in regex.finditer("ABC12DEF3G56HIJ7") {
   print("\(m.group(2)) * \(m.group(1))")
}
/*
 "12 * ABC",
 "3 * DEF",
 "56 * G",
 "7 * HIJ"
 */

贡献

非常欢迎贡献🙌

许可证

AGString 使用MIT许可证发布。详情见LICENSE。