比较一个string,给Swift中的每个字符提供两种可能性

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

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 

我找不到任何类似的东西。

请帮忙,谢谢。

你所描述的问题正在呼喊解决使用正则expression式 。

上次我看,Swift不支持正则expression式,但它确实允许使用NSRegularExpression 。 请参阅Swift中的Regex获取Regex类的示例。

所以你最终会写一些类似的东西

 if Regex("[12] [23] [12] [12]").test("2 3 1 2") { println("matches pattern") } 

另一个关于这个主题的博客文章是Swift中的Clean Regular Expressions

看起来你所要求的是支持正则expression式。 它们并不直接存在于Swift中(还没有?)。 但是你可能想看看Swift中的RegEx? 和http://nomothetis.svbtle.com/clean-regular-expressions-using-conversions