通过为Swift中的每个字符提供两种可能性来比较字符串

时间:2014-12-10 15:27:35

标签: ios xcode swift

我需要通过为(if)语句中的字符串中的每个字符提供两种可能性来比较字符串,例如:

let str = "2 3 1 2"
if str == "(1||2) (2||3) (1||2) (1||2)" {
//Do Something
}

我知道代码编写不正确,只是为了理解我的意思。

我以前在VB中使用(Like Operator),例如:

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

我无法在swift中找到类似的东西。

请帮助,谢谢。

2 个答案:

答案 0 :(得分:0)

看起来你要求的是对正则表达式的支持。它们并不直接存在于Swift中(但是?)。但您可能需要查看RegEx in Swift?http://nomothetis.svbtle.com/clean-regular-expressions-using-conversions

答案 1 :(得分:0)

您描述的问题迫切需要使用regular expressions来解决。

上次我看,Swift不支持正则表达式,但确实允许使用NSRegularExpression。有关Regex类的示例,请参阅 Regex in Swift

所以你最终会写出像

这样的东西
if Regex("[12] [23] [12] [12]").test("2 3 1 2") {
  println("matches pattern")
}

关于此主题的另一篇博客文章是 Clean Regular Expressions In Swift