我想匹配小数与整数部分,但有或没有小数部分,例如1.1,0.1,1.,但不是.1在Scala。
目前,我的解决方案是
val pattern: Regex = raw"\d+.\d*".r;但是,它错误地匹配了小数".2000“。pattern.findAllIn(".2000").toList(0)将等于2000。怎么了?
发布于 2018-06-19 15:08:58
未转义的点匹配除换行符以外的任何chsar。
在最基本的形式中,提取符合9+.9*格式的数字的正则表达式将如下所示
val pattern: Regex = """\d+\.\d*""".r请参阅regex demo。在这里,\d+匹配1+数字,\.匹配单个点,\d*匹配0或更多数字。
如果您希望避免在192.168.0.2中匹配192.168,可以添加一些查找,例如
val pattern: Regex = """(?<!\d\.)\d+\.\d*(?!\.?\d)""".r请参阅regex demo。在这里,(?<!\d\.)负向后视不允许数字和点出现在所需格式的数字之前,而(?!\.?\d)负向前视禁止. +数字或紧跟在数字之后的数字。
https://stackoverflow.com/questions/50918293
复制相似问题