0
フリー・テキスト文字列を使用して配列内の項目を検索しようとしています。私はこれまでのところ、以下のコードを見てきましたが、部分的にしか一致しない結果を返しています。配列内の値に基づいて文字列内の完全一致を検索する
var townArray = ["Leamington Spa", "Birmingham", "Coventry", "Leamington Hastings", "Royal Leamington Spa", "Lea", "Leam", "Cove"]
let searchText = "Anyone want to meet in Leamington Spa or Coventry"
var resultsArray = [String]()
for i in townArray {
let range = searchText.lowercased().range(of: i.lowercased(), options: .regularExpression)
// (8 times)
if range != nil {
let found = searchText.substring(with: range!)
print(found)
resultsArray.append(found)
// (5 times)}
}
print(resultsArray)
// ["Leamington Spa", "Coventry", "Lea", "Leam", "Cove"]
あなたは何を期待していますか?町の配列にはその部分文字列が含まれています。この特定の場合、正規表現オプションは冗長です。 – vadian
"Leamington Spa"と "Coventry"は、 "Leam"、 "Lea"、 "Cove"以外のsearchTextで指定された都市だから、返す予定です。 –