Parsing 不区分大小写的Scala解析器组合器
我正在尝试创建一个,其中有些部分我希望不区分大小写。我相信这很容易,但我一直没能找到 编辑:Parsing 不区分大小写的Scala解析器组合器,parsing,scala,parser-combinators,Parsing,Scala,Parser Combinators,我正在尝试创建一个,其中有些部分我希望不区分大小写。我相信这很容易,但我一直没能找到 编辑: 重读使我为这个问题感到羞愧。是一个失败的测试,可以解释我的意思。使用正则表达式而不是文本 lazy val caseSensitiveKeyword: Parser[String] = "casesensitive" lazy val caseInsensitiveKeyWord: Parser[String] = """(?i)\Qcaseinsensitive\E""".r (有关使用的正则表达式
重读使我为这个问题感到羞愧。是一个失败的测试,可以解释我的意思。使用正则表达式而不是文本
lazy val caseSensitiveKeyword: Parser[String] = "casesensitive"
lazy val caseInsensitiveKeyWord: Parser[String] = """(?i)\Qcaseinsensitive\E""".r
(有关使用的正则表达式语法的信息,请参阅文档。)
如果您经常这样做,可以使用pimp字符串简化语法:
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
非常感谢。工作得很好。