swift学習:正規表現のチェックと削除


プログラマーレベル1題【推奨新ID】正規式の確認部分に時間がかかりすぎたので、エラーを整理してみました🙆‍♀️
私にとって一番問題になっている部分は
数字/英語小文字文字列から他の文字を削除します.
正規スタイル自体は簡単#"0-9 a-z.-"
この正規表現は最初は文字列全体のマッチングと混同されていたので「^[0-9 a-z.-]$」と書きましたが、私が欲しいものはできないことが後で分かりました.
文字列正規表現を検索して確認すると、NSRegularExpressionがほとんど使用されています.
私のコードに最も役立つコードは次のとおりです.
do{
        let regex = try NSRegularExpression(pattern:"[0-9a-z._-]", options:[])
        let nsString = NSString(string: answer)
        var results = regex.matches(in:answer, options:[],range:NSRange.init(location:0, length:nsString.length))
        let a = results.map{nsString.substring(with: $0.range)}
        answer = a.joined(separator:"")
    }catch let error{
        print("\(error.localizedDescription)")
    }
(出典:https://gist.github.com/devssun/d1c0d20daa300c08cc921824a912eb72)
これにより、正規表現に一致しない文字を必要に応じて削除し、再削除した文字を文字列に戻すことができます.
問題は、テストケースの1つがタイムアウトしたことです.
だから私が考えた方法はreplacing outliencesを使うことです.
文字列の一部を置き換え、optionsを設定するには、名前の通りです.正規表現を使用する場合は、正規表現モードに違反する文字を「」という空の文字列に変換できます.
    answer = answer.replacingOccurrences(of:"[^0-9a-z._-]",with:"", options: .regularExpression)
杯にぶつかる
このようにして、通常のモードの確認と削除を1行で完了できます.👏
++を参照として、正規表現の前に^を付けると、後の正規表現と逆の文字が表示されます.
リファレンス
https://gist.github.com/devssun/d1c0d20daa300c08cc921824a912eb72
https://tngusmiso.tistory.com/62