swift - 在大型 Swift 代码库中用 ".doOnComplete {}"系统地替换 ".do(onComplete: {})"的最简单方法是什么?

标签 swift regex xcode static-analysis swiftlint

<分区>

什么是最好的替换方式:

.doOnComplete {
    // Implementation
}

.do(
    onComplete: {
        // Implementation
    }
)

遍及大型 Swift 代码库?鉴于有大量这些手动替换不是一种选择。

最佳答案

根据代码的复杂性,这可能很难实现。

正确的方法确实是 try catch 实现 block 。但是,重要的是要注意平衡的花括号,例如像这样:

\.doOnComplete\s*(\{(?>[^{}]+|(?1))*\})

然后替换为

.do(\n\tonComplete: $1\t\n)

Demo

PS:我试着漂亮地打印代码,但无论如何你都必须重新格式化代码。

关于swift - 在大型 Swift 代码库中用 ".doOnComplete {}"系统地替换 ".do(onComplete: {})"的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50262029/

相关文章:

python - 正则表达式统一 Python 中的电话号码格式

ios - 使用 SOAP 使用 WCF 服务将图像从 iPhone 上传到服务器

swift - View 不执行 segue

swift - 如何实现串行网络调用队列然后在 RxSwift 中处理?

swift - UICollectionView 上的可见单元不能在没有参数的情况下调用

javascript - 使用 javascript 正则表达式使引用的文本变得漂亮

swift - 将控件添加到 IBDesignable View 的 subview

JavaScript : Replace Backslash and double Quotes with some other char

objective-c - 如何在 Cocoa 中将 Finder Sync Extensions 与 Xcode 集成

ios - 类型为 'CFTypeRef _Nullable'(又名 'const void *')的集合元素不是 Objective-C 对象