比较一个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 。