如何使用未知字符搜索数组 - Swift 3 for Mac
How to search array using unknown characters - Swift 3 for Mac
我正在寻找一种方法来搜索字符串数组(包含带扩展名的文件名)中的点(如果字符串包含字符 - 点字符,则打印字符串定义)。为此,我必须使用通配符 (.).
之类的东西
所以我尝试了这个:
let testString = "*.*"
if Array[x].countains(testString)
{
print (Array[x])
}
或
if Array[x].range(of:testString) != nil
{
print (Array[x])
}
但是不行。我想我必须以不同的方式声明它,但我不知道如何做,也没有找到正确的例子。
有人可以举一些例子吗?谢谢你
在 String
上使用此 辅助方法:
extension String {
func contains(regex: NSRegularExpression) -> Bool {
let length = self.utf16.count // NSRanges are UTF-16 based!
let wholeString = NSRange(location: 0, length: length)
let matchCount = regex.numberOfMatches(in: self, range: wholeString)
return matchCount > 0
}
}
然后试试这个:
let fileNameWithExtension = try! NSRegularExpression(pattern: "\w+[.]\w+")
if Array[x].contains(regex: fileNameWithExtension) {
print(Array[x])
}
您可能需要调整上面的 模式 以匹配您想到的所有情况。 NSRegularExpression cheat sheet 可能对你有帮助 ;-)
我正在寻找一种方法来搜索字符串数组(包含带扩展名的文件名)中的点(如果字符串包含字符 - 点字符,则打印字符串定义)。为此,我必须使用通配符 (.).
之类的东西所以我尝试了这个:
let testString = "*.*"
if Array[x].countains(testString)
{
print (Array[x])
}
或
if Array[x].range(of:testString) != nil
{
print (Array[x])
}
但是不行。我想我必须以不同的方式声明它,但我不知道如何做,也没有找到正确的例子。 有人可以举一些例子吗?谢谢你
在 String
上使用此 辅助方法:
extension String {
func contains(regex: NSRegularExpression) -> Bool {
let length = self.utf16.count // NSRanges are UTF-16 based!
let wholeString = NSRange(location: 0, length: length)
let matchCount = regex.numberOfMatches(in: self, range: wholeString)
return matchCount > 0
}
}
然后试试这个:
let fileNameWithExtension = try! NSRegularExpression(pattern: "\w+[.]\w+")
if Array[x].contains(regex: fileNameWithExtension) {
print(Array[x])
}
您可能需要调整上面的 模式 以匹配您想到的所有情况。 NSRegularExpression cheat sheet 可能对你有帮助 ;-)