Regex 提取9+;中的数字;。使用Scala正则表达式从文本中设置9*格式

Regex 提取9+;中的数字;。使用Scala正则表达式从文本中设置9*格式,regex,scala,Regex,Scala,我想将小数与整数部分匹配,但要有或没有小数部分,例如Scala中的1.1,0.1,1.但不是.1 目前,我的解决方案是 val pattern: Regex = raw"\d+.\d*".r; 但是,它与小数点“.2000”错误匹配模式.findAllIn(“.2000”)。toList(0)将等于2000。怎么了?一个未替换的点与任何chsar匹配,但换行符除外 在最基本的形式中,用于提取符合9+.9*格式的数字的正则表达式如下 val pattern: Regex = """\d+\.\d

我想将小数与整数部分匹配,但要有或没有小数部分,例如Scala中的
1.1
0.1
1.
但不是
.1

目前,我的解决方案是

val pattern: Regex = raw"\d+.\d*".r;

但是,它与小数点“.2000”错误匹配<代码>模式.findAllIn(“.2000”)。toList(0)将等于2000。怎么了?

一个未替换的点与任何chsar匹配,但换行符除外

在最基本的形式中,用于提取符合
9+.9*
格式的数字的正则表达式如下

val pattern: Regex = """\d+\.\d*""".r
看。这里,
\d+
匹配1+个数字,
\.
匹配一个点,
\d*
匹配0个或更多数字

如果您想避免在
192.168.0.2
中匹配
192.168
,请添加一些查找框,例如

val pattern: Regex = """(?<!\d\.)\d+\.\d*(?!\.?\d)""".r

val-pattern:Regex=“”(?您可以使用
val-pattern:Regex=“”\d+\?\d*“”)".r
十进制数的正则表达式…真的没有重复吗?这不完全是您需要的,但是@WiktorStribiżew接受答案中的正则表达式匹配
.456
,可能不匹配
1。
。我不确定OP是否想要匹配没有句点的数字,您的建议似乎可以跳过
因为
。但是重要的部分是
\。
而不仅仅是
,所以也许你可以通过删除
来调整你的评论,并将其作为答案发布?不幸的是,在这种特殊情况下,即使是标准副本也没有多大帮助,因为奇怪的要求数字以per结尾关键词raw和“”之间有什么区别?