And*_*res 5 parsing scala parser-combinators
我正在尝试创建一种语言,并且我希望它的一些部分不区分大小写.我确信这很容易,但我找不到它.
编辑:重新阅读让我为这个问题感到羞耻.这是一个失败的测试,解释了我的意思.
Dav*_*low 15
使用正则表达式而不是文字.
lazy val caseSensitiveKeyword: Parser[String] = "casesensitive"
lazy val caseInsensitiveKeyWord: Parser[String] = """(?i)\Qcaseinsensitive\E""".r
Run Code Online (Sandbox Code Playgroud)
(有关所使用的正则表达式语法的信息,请参阅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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1247 次 |
| 最近记录: |