Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing 不区分大小写的Scala解析器组合器_Parsing_Scala_Parser Combinators - Fatal编程技术网

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

非常感谢。工作得很好。