Мені потрібно порівнювати рядок, надаючи дві можливості для кожного символу в рядку в операторі (якщо), наприклад:
let str = "2 3 1 2"
if str == "(1||2) (2||3) (1||2) (1||2)" {
//Do Something
}
Я знаю, що код не написаний правильно, але просто щоб зрозуміти, що я маю на увазі.
Я використовував (подібний оператор) у VB, наприклад:
Dim s As String = "2 3 1 2"
If s Like "[1-2] [3-4] [2-3] [1-2]" Or s Like "[1-2] [1-2] [2-3] 2" Then
//Do something
End If
Я не міг знайти нічого подібного в швидкому.
Будь ласка, допоможіть, спасибі.
Відповіді:
0 для відповіді № 1Проблема, яку ви описуєте, - це виклик до вирішення проблеми регулярні вирази.
Останній раз, коли я дивився, Swift не підтримував регулярних виразів, але це дозволяє використовувати NSRegularExpression
. Побачити Regex в Свіфт для прикладу класу Regex.
Таким чином, ви в кінцевому підсумку писати щось подібне
if Regex("[12] [23] [12] [12]").test("2 3 1 2") {
println("matches pattern")
}
Інший блог по цій темі Чисті регулярні вирази в Swift.
0 для відповіді № 2
Схоже, що ви просите, це підтримка регулярних виразів. Вони не існують безпосередньо в Swift (поки що?) RegEx у Свіфі? і http://nomothetis.svbtle.com/clean-regular-expressions-using-conversions .