如何查看特定字符串是否匹配正则表达式模式?
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") }
我正在尝试查看特定字符串是否与 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") }