从字符串中提取整个单词
Extract whole word from string
我有一个像这样的字符串:
I need glass in California
为了在单词“need”和“in”之间提取“glass”(或任何东西),我使用的是这种方法:
let category = "I need glass in California".substring(from: "need", to: "in", options: .caseInsensitive)
extension StringProtocol {
func substring<S: StringProtocol, T: StringProtocol>(from start: S, to end: T, options: String.CompareOptions = []) -> SubSequence? {
guard let lower = range(of: start, options: options)?.upperBound,
let upper = self[lower...].range(of: end, options: options)?.lowerBound
else { return nil }
return self[lower..<upper]
}
}
对于这个字符串 : > 我需要在加利福尼亚油漆
如果我需要提取“paint”关键字,它只会选择“pa”,因为“in”关键字也存在于 paint (pa'in't)
我需要得到整个单词PAINT,方法是遍历字符串的每个字符
继续使用您的算法的快速解决方案是搜索“need”和“in”之间的子字符串。前后空格很重要,会强制进行全词搜索。
我有一个像这样的字符串:
I need glass in California
为了在单词“need”和“in”之间提取“glass”(或任何东西),我使用的是这种方法:
let category = "I need glass in California".substring(from: "need", to: "in", options: .caseInsensitive)
extension StringProtocol {
func substring<S: StringProtocol, T: StringProtocol>(from start: S, to end: T, options: String.CompareOptions = []) -> SubSequence? {
guard let lower = range(of: start, options: options)?.upperBound,
let upper = self[lower...].range(of: end, options: options)?.lowerBound
else { return nil }
return self[lower..<upper]
}
}
对于这个字符串 : > 我需要在加利福尼亚油漆
如果我需要提取“paint”关键字,它只会选择“pa”,因为“in”关键字也存在于 paint (pa'in't)
我需要得到整个单词PAINT,方法是遍历字符串的每个字符
继续使用您的算法的快速解决方案是搜索“need”和“in”之间的子字符串。前后空格很重要,会强制进行全词搜索。