前言:
可以三步走,
-
文本解析,抽取信息
-
整理出依赖图的层次
-
绘制出来
这一篇介绍了,函数式编程来解析,抽取信息
函数式编程与文本解析,review octree/pretty
本文介绍,面向过程,使用正则表达式,解析文本,
还有第二步,整理出依赖图
有参考 octree/pretty
第 1 步,文本解析,抽取信息
面向过程,亲切友好,清晰易懂,没有函数式那么多的范型
代码比函数式还少
可能,pretty 里面,函数式编程用的, 需要提高下
从文本中,得到字典 [ 父 lib : [子 lib ] ]
struct Parser {
func parse(_ content: String) -> [String: [String]]?{
struct Tag{
// 必然这个打头
let pageStart = "PODS:\n"
// 换行
let lineEnd: Character = "\n"
// 到结尾了
let pageEnd: String
// 父 lib
let itemStart = String(repeating: " ", count: 2)
// 子 lib
let subItemStart = String(repeating: " ", count: 4)
init() {
pageEnd = String(repeating: "\(lineEnd)", count: 2)
}
}
let tag = Tag()
guard content.hasPrefix(tag.pageStart) else {
return nil
}
let info = content.rm(header: tag.pageStart)
guard let temp = info.components(separatedBy: tag.pageEnd).first else{
return nil
}
var result = [String: [String]]()
let list = temp.split(separator: tag.lineEnd)
// 把信息,拆分出来了
v