特定の文字列がswiftの正規表現パターンに一致するかどうかを確認しようとしています。これまでのコードでは、指定された文字列内の部分文字列が正規表現と一致するかどうかを確認しているようです。
let string = " (5"
let pattern = "[0-9]"
if string.rangeOfString(pattern, options: .RegularExpressionSearch) != nil {
print("matched")
}
上記のコードは、文字列全体がパターンと一致していなくても、一致を返します。
コードをどのように動作させたいですか:
" (5" -> no match
"(5" -> no match
"5" -> match
コードが現在どのように動作しているか:
" (5" -> match
"(5" -> match
"5" -> match
範囲がnilであるかどうかをテストする代わりに、範囲がターゲット文字列全体であるかどうかを確認してください。
let string = "5"
let r = string.characters.indices
let pattern = "[0-9]"
let r2 = string.rangeOfString(pattern, options: .RegularExpressionSearch)
if r2 == r { print("match") }
編集誰かがSwift4への翻訳を求めました:
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") }
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加