Ios 如何使用正则表达式删除swift 3目录中的某些文件

Ios 如何使用正则表达式删除swift 3目录中的某些文件,ios,regex,swift,Ios,Regex,Swift,我需要删除文档目录中与模式匹配的所有文件: myproject-(任何内容).sqlite-(任何内容) 现在,我正在一个接一个地做: let oldSqlitePath : NSString = documentsDirectory.appendingPathComponent("myproject-\(lastAppVersion!).sqlite") as NSString let oldSqliteWalPath : NSString = documentsDirectory.appen

我需要删除文档目录中与模式匹配的所有文件:

myproject-(任何内容).sqlite-(任何内容)

现在,我正在一个接一个地做:

let oldSqlitePath : NSString = documentsDirectory.appendingPathComponent("myproject-\(lastAppVersion!).sqlite") as NSString
let oldSqliteWalPath : NSString = documentsDirectory.appendingPathComponent("myproject-\(lastAppVersion!).sqlite-wal") as NSString
let oldSqliteShmPath : NSString = documentsDirectory.appendingPathComponent("myproject-\(lastAppVersion!).sqlite-shm") as NSString

 do {
    // delete the old SQLite file
    try fileManager.removeItem(atPath: oldSqlitePath as String)
 } catch _ {
 }
 do {
    try fileManager.removeItem(atPath: oldSqliteWalPath as String)
 } catch _ {
 }
 do {
    try fileManager.removeItem(atPath: oldSqliteShmPath as String)
 } catch _ {
 }

我想使用正则表达式。

如果您总是只有4项要删除,我认为正则表达式在这里没有意义。我用这样的东西

extension URL {

    public var sqliteFileURLs: [URL] {

        let wal: String = "\(path)-wal"
        let journal: String = "\(path)-journal"
        let shm: String = "\(path)-shm"

        let filesNames: [String] = [path, wal, shm, journal]

        return filesNames
            .filter { FileManager.default.fileExists(atPath: $0) }
            .map { (path: String) -> URL in URL(fileURLWithPath: path) }
    }
}
然后可以执行
path.sqlitefileurl.map{FileManager.default.removietem(位于:$0}


如果你真的想使用正则表达式,这就是:
myproject\-.+?\.sqlite\-.+

如果你总是只有4个项目要删除,我认为正则表达式在这里没有意义。我使用这样的东西

extension URL {

    public var sqliteFileURLs: [URL] {

        let wal: String = "\(path)-wal"
        let journal: String = "\(path)-journal"
        let shm: String = "\(path)-shm"

        let filesNames: [String] = [path, wal, shm, journal]

        return filesNames
            .filter { FileManager.default.fileExists(atPath: $0) }
            .map { (path: String) -> URL in URL(fileURLWithPath: path) }
    }
}
然后可以执行
path.sqlitefileurl.map{FileManager.default.removietem(位于:$0}


如果你真的想使用正则表达式,这就是:
myproject\-.+?\.sqlite\-.+

你的具体问题是什么?我没有找到一个正确的方法来定义字符串myproject-(anything).sqlite-(anything)使用正则表达式。
myproject-[^.]*\.sqlite-.*
并不完美,但应该做到这一点。您的具体问题是什么?我没有找到使用正则表达式定义字符串myproject-(任意)。sqlite-(任意)的正确方法。
myproject-[^.]*\.sqlite-.*
并不完美,但应该做到这一点。谢谢,但我只举了一个例子。我有3项以上:)用正则表达式响应以使用alsoThanks,但我只给出了一个示例。我有3个以上的项:)用正则表达式响应以使用alsoThanks