2015-01-16 44 views
2

作爲一個更大的解析器的一部分,我寫一個規則來匹配像下面這樣使用parboiled2字符串:有沒有規則匹配parboiled2中的unicode可打印字符?

意大利RELE

我想用簡單的東西像下面這樣:

CharPredicate.Printable 

但由於字符串末尾有unicode字符,解析器失敗,出現org.parboiled2.ParseError

有沒有一個簡單的選項,我不知道匹配可打印的Unicode字符?

回答

1

看看https://github.com/sirthias/parboiled2/blob/master/parboiled-core/src/main/scala/org/parboiled2/CharPredicate.scala#L112 - 這是很容易做到的自己的謂詞,例如:

val latinSupplementCharsPredicate = CharPredicate('\u00c0' to '\u00dc') ++ CharPredicate('\u00e0' to '\u00fd') 
+0

謝謝!在我看到你的答案之前,我剛纔已經明白了這一點!太好了! – David

+1

祝你好運。請注意,不同的國家有不同的字符,所以您可能想要將Unicode選擇自定義爲特定集合,並保留額外的字符以驗證數據。 – abatyuk

相關問題