如何查看特定字符串是否匹配正则表达式模式?

How to see if a specific string matches a regex pattern?

我正在尝试查看特定字符串是否与 swift 中的正则表达式匹配。到目前为止我的代码似乎检查给定字符串中的任何子字符串是否与 正则表达式。

let string = " (5"
let pattern = "[0-9]"
if string.rangeOfString(pattern, options: .RegularExpressionSearch) != nil {
        print("matched")
}

上面的代码 returns 匹配,即使整个字符串与模式不匹配。

我希望代码如何运行:

" (5" -> no match
"(5"  -> no match
"5"   -> match

代码当前如何运行:

" (5" -> match
"(5"  -> match
"5"   -> match

不是测试范围是否为零,而是查看范围是否是整个目标字符串。

let string = "5"
let r = string.characters.indices
let pattern = "[0-9]"
let r2 = string.rangeOfString(pattern, options: .RegularExpressionSearch)
if r2 == r { print("match") }

编辑 有人要求翻译成 Swift 4:

let string = "5"
let r = string.startIndex..<string.endIndex
let pattern = "[0-9]"
let r2 = string.range(of: pattern, options: .regularExpression)
if r2 == r { print("match") }