我有一個程式正在使用 ML Kit 在檔案上使用文本識別,我正在獲取該資料并僅列印價格。所以我正在使用文本識別字串并將其傳遞給下面的正則運算式:
val reg = Regex("\$([0-9]*.[0-9]{2})")
val matches = reg.findAll(rec)
val prices = matches.map{it.groupValues[0]}.joinToString()
recogResult.text = prices
我在另一個網站上測驗了 Regex 公式,它獲取了所有正確的資料。但是它什么也沒列印。當它到達 reg.findAll(rec) 部分時,匹配 = kotlin.sequences.GeneratorSequence@bd56ff3和價格 = ""。
uj5u.com熱心網友回復:
您可以使用
val reg = Regex("""\$[0-9]*\.[0-9]{2}""")
val matches = reg.findAll("Price: \$1234.56 and \$1.56")
val prices = matches.map{it.groupValues[0]}.joinToString()
請參閱在線演示。備注:
"""..."""是一個三引號字串文字,其中反斜杠被決議為文字\字符,不用于形成字串轉義序列\$- 在三引號字串文字中定義匹配文字字符的\$正則運算式轉義$[0-9]*\.[0-9]{2}匹配零個或多個數字,.以及兩個數字。
請注意,您可以使用\p{Sc}匹配任何貨幣字符,而不僅僅是$.
如果您想確保兩個小數位后面沒有其他數字,(?![0-9])請在正則運算式的末尾添加。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/462390.html
