gpt4 book ai didi

java - Java中的正则表达式将特定的特殊字符与数字匹配

转载 作者:行者123 更新时间:2023-11-29 08:27:48 26 4
gpt4 key购买 nike

我想要一个接受数字和特定特殊字符(.-,)的正则表达式。我刚刚学习了正则表达式的基础知识,我不知道我的模式为什么不起作用,真的需要建议。

我的模式

   ^(([0-9]*)+[.,\-]{0,1})$

(.,-) 只能重复一次,即{0,1}。此外,首先应该是数字,最后也是数字。我真的需要一点插入力。

预期输出

122-555-1521 //true

155--122 //false

155,- //false

.-12 //false

123.123. //false

.12 //false

1.2,1-3 //true

最佳答案

您可以使用简单模式 ^(?:\d+[.,-])*\d+$

  • 几个数字:\d+
  • .,- 中的一个字符:[.,-]
  • 您可以重复前面的 2 个元素:(?:\d[.,-])* ()?: non-capture for performance)
  • 末尾的数字:\d+
String[] array = {"122-555-1521", "155--122", "155,-", ".-12", "123.123."};
String pattern = "^(?:\\d+[.,-])*\\d+$";
for(String str : array){
System.out.println(str+" "+str.matches(pattern));
}

122-555-1521 true
155--122 false
155,- false
.-12 false
123.123. false

Working Demo - Regex Demo

关于java - Java中的正则表达式将特定的特殊字符与数字匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51098181/

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