【发布时间】:2011-08-30 03:23:57
【问题描述】:
【问题讨论】:
标签: parsing scala parser-combinators
【问题讨论】:
标签: parsing scala parser-combinators
使用正则表达式而不是文字。
lazy val caseSensitiveKeyword: Parser[String] = "casesensitive"
lazy val caseInsensitiveKeyWord: Parser[String] = """(?i)\Qcaseinsensitive\E""".r
(有关使用的正则表达式语法的信息,请参阅java.util.Pattern 的文档。)
如果你经常这样做,你可以使用 pimp String 来简化语法:
class MyRichString(str: String) {
def ignoreCase: Parser[String] = ("""(?i)\Q""" + str + """\E""").r
}
implicit def pimpString(str: String): MyRichString = new MyRichString(str)
lazy val caseInsensitiveKeyword = "caseinsensitive".ignoreCase
【讨论】: