Swift检查字符串中是否存在整个单词

时间:2016-05-29 07:04:36

标签: ios string swift

我想要做的是检查字符串中是否存在整个单词。我举个例子。

join(R1,Ai,join(R2,Bj,R3,Ck),Bj)

这里的情况确实如此,但我不想这样。我希望它能成为真正的"这个"或"是"或" a"或者"我的"或"字符串"在mainString中搜索,这意味着我要比较整个单词而不是字符串中的字符。我希望我已经详细说明了。

3 个答案:

答案 0 :(得分:2)

//以下方法将返回没有标点符号的字符串和非必需的填充字符

信息来源:How to remove special characters from string in Swift 2?

 func removeSpecialCharsFromString(mainString) -> String {
    let okayChars : Set<Character> = 
        Set("abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLKMNOPQRSTUVWXYZ".characters)
    return String(text.characters.filter {okayChars.contains($0) })
} 



let stringWithoutSpecialChars = removeSpecialCharsFromString(mainString)

//信息来源:Chris在此页面上的回答

let components = stringWithoutSpecialChars.componentsSeparatedByString(" ")
for component in components {
    print(component)
}

enter image description here

答案 1 :(得分:1)

你必须使用这样的正则表达式:

NSString *pattern = @"\\str\\b";
NSRange range = [text rangeOfString:pattern options:NSRegularExpressionSearch|NSCaseInsensitiveSearch];

模式末尾的\ b执行您想要的操作,它只匹配整个单词。

答案 2 :(得分:1)

我建议将字符串拆分为组件,并查看组件是否与您的字符串匹配。下面是一个方法,它使用组件来检查任何单词是否与给定的搜索词匹配。

func isTermInString(term:String, stringToSearch:String) -> Bool {
    let components = stringToSearch.componentsSeparatedByString(" ")

    for component in components {
        if component == term {
            return true
        }
    }

    return false
}