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。