我有一個字串陣列,如:
"Foo", "Foo1", "Foo$", "$Foo", "1Foo", "1$", "20$", "1$Foo", "12$$", etc.
我需要的格式是[Any number without dots][Must end with single $ symbol](我的意思是,上面陣列中的 1$ 和 20$)
我嘗試過如下方式,但它不起作用。
func isValidItem(_ item: String) -> Bool {
let pattern = #"^[0-9]$"#
return (item.range(of: pattern, options: .regularExpression) != nil)
}
有人可以幫助我嗎?另外,如果您有正則運算式模式,請分享一些很棒的鏈接以了解正則運算式模式。
謝謝
uj5u.com熱心網友回復:
您可以使用
func isValidItem(_ item: String) -> Bool {
let pattern = #"^[0-9] \$\z"#
return (item.range(of: pattern, options: .regularExpression) != nil)
}
let arr = ["Foo", "Foo1", "Foo$", "$Foo", "1Foo", "1$", "20$", "1$Foo", "12$$"]
print(arr.filter {isValidItem($0)})
// => ["1$", "20$"]
這里,
^- 匹配一行的開頭[0-9]- 一個或多個 ASCII 數字(請注意,Swift 正則運算式引擎是 ICU并\d匹配這種風格的任何 Unicode 數字,因此[0-9]如果您只需要匹配0-9范圍內的數字,則更安全)\$- 一個$字符\z- 字串的最后。
請參閱在線正則運算式演示($使用而不是\z因為演示是針對單個多行字串運行的,因此m在 regex101.com 上使用了該標志)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/360592.html
上一篇:我需要幫助在我的API代碼中實作承載令牌,但我不知道如何:(
下一篇:如何覆寫應用程式內的用戶語言?
