首页 > 解决方案 > SQL like & 匹配 Swift 中字符串上的查询

问题描述

我想编写一个可以与两个字符串进行比较的函数。

像这样的东西:

func stringComparison(_ str1:String, comparisonOperator:StringComparisonOperator, _ str2:String)
{
   ...
}

我想支持以下类型StringComparisonOperator

enum StringComparisonOperator {
    case equals
    case contains
    case beginsWith
    case endsWith
    case like
    case matches
}

Swift 提供==(for equals)、.contains(for contains)、.hasPrefix(for beginWith) 和.hasSuffix(for endsWith)。

但是,我对选项likematches选项一无所知。有人可以帮助我吗?

标签: swiftmatchsql-likestring-comparison

解决方案


您可以为喜欢匹配创建中缀运算符

infix operator =~
func =~ (string: String, regex: String) -> Bool {
    return string.range(of: regex, options: .regularExpression) != nil
}

并使用:"abcd" =~ "ab*cd"


推荐阅读