用于验证字符串的java正则表达式?

用于验证字符串的java正则表达式?,java,regex,numeric,Java,Regex,Numeric,大家好,我想写一个正则表达式来检查一个值是否只有数字,但0不在第一位。例如,值10是正确的,但值01是错误的 到目前为止,我有这个mystr.matches[123456789]+我认为应该有人来做这项工作:[1-9]+[0-9]* 干杯 我认为一个人应该做这项工作:[1-9]+[0-9]* 干杯 建议的解决方案: mystr.matches("[1-9]\\d*") 说明: [1-9]开始时,检查第一个数字是否在1和9之间。 \\d*查找0到9之间的任何数字。 提议的解决办法: mystr.

大家好,我想写一个正则表达式来检查一个值是否只有数字,但0不在第一位。例如,值10是正确的,但值01是错误的


到目前为止,我有这个mystr.matches[123456789]+

我认为应该有人来做这项工作:[1-9]+[0-9]*


干杯

我认为一个人应该做这项工作:[1-9]+[0-9]*

干杯

建议的解决方案:

mystr.matches("[1-9]\\d*")
说明:

[1-9]开始时,检查第一个数字是否在1和9之间。 \\d*查找0到9之间的任何数字。 提议的解决办法:

mystr.matches("[1-9]\\d*")
说明:

[1-9]开始时,检查第一个数字是否在1和9之间。 \\d*查找0到9之间的任何数字。 试试这个:

mystr.matches("^[1-9]\\d*$")
试试这个:

mystr.matches("^[1-9]\\d*$")

您也可以使用这个正则表达式

^(?!0)\d+$ 

您也可以使用这个正则表达式

^(?!0)\d+$ 

这里的所有答案将验证像1,2,3,…,10,11。。。但如果您还想包括简单的0,但不包括00、01等等,您可以使用

mystr.matches("0|[1-9][0-9]*")

这里的所有答案将验证像1,2,3,…,10,11。。。但如果您还想包括简单的0,但不包括00、01等等,您可以使用

mystr.matches("0|[1-9][0-9]*")


mystr.matches[1-9]+0是一个正确的数字吗?@luigimendoza我问的是关于0的问题,只是0关于浮点数的问题,比如10.5?mystr.matches[1-9]+0是一个正确的数字吗?@luigimendoza我问的是关于0的问题,只是0关于浮点数的问题,比如10.5?1,2,3,4,5,6,7,8,9怎么样?应该是\\d*否?当我输入2时,我有problem@user1884030答案已更新。顺便问一下,0是合法的输入吗?这将匹配任何带有数字1-9的输入。1、2、3、4、5、6、7、8、9如何?应该是\\d*否?当我输入2时,我有problem@user1884030答案已更新。顺便问一下,0是合法输入吗?这将匹配其中任何数字为1-9的内容。您的正则表达式中不需要+,因为您在[0-9]之后有*。尽量避免在正则表达式中不需要+,因为在[0-9]之后有*。尽量避免使用\\来转义\字符。谢谢,更改了它,显然我必须输入三个\字符才能显示两个。只有当整个字符串匹配使用正则表达式时,匹配才会返回true,因此不需要使用^和$:。下次在创建答案以格式化所选代码时,也可以尝试使用{}键或Ctrl+K,这样您就不必使用\\\之类的技巧来获得两个反斜杠:您需要使用\\来转义\字符。谢谢,更改了它,显然,我必须输入三个\字符才能显示两个。只有当整个字符串匹配使用正则表达式时,匹配才会返回true,因此不需要使用^和$:。下次在创建答案以格式化所选代码时,也可以尝试使用{}键或Ctrl+K,这样您就不必使用\\\之类的技巧来获得两个反斜杠: