gpt4 book ai didi

java - 带点的数字的正则表达式模式

转载 作者:搜寻专家 更新时间:2023-10-31 20:04:22 25 4
gpt4 key购买 nike

为此我需要一个正则表达式

然后任意数字。再次编号和。

所以这是有效的

1.3.164.1.2583.15.46
546.598.856.1.68.268.695.5955565

但是

5..........
...56.5656

无效

我试过这样的模式:

pattern = "[0-9](\\.[0-9]?*)?*";
pattern = "[0-9](\\.[0-9]?*)?$";
pattern = "[^0-9\\.]";

但这些都不符合我的要求。请帮忙?

我现有的代码是

String PATTERN="\\d+(\\.\\d+)*";
@Override
public void insertString(int arg0, String arg1, AttributeSet arg2)
{

if(!arg1.matches(this.PATTERN))
return;

super.insertString(arg0, arg1, arg2);
}

最佳答案

像这样的东西应该可以工作:

(\\d+\\.?)+

编辑

是的,如果最终的 . 从描述中不清楚是允许的(假设初始值不是)。

如果不是:

(\\d+\\.?)*\\d+\\d+(\\.\\d+)* (如果这看起来更合乎逻辑的话)

测试

for (String test : asList("1.3.164.1.2583.15.46",
"546.598.856.1.68.268.695.5955565", "5..........", "...56.5656"))
System.out.println(test.matches("\\d+(\\.\\d+)*"));

产生:

true
true
false
false

关于java - 带点的数字的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13189665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com