java检查正则表达式中字符串是否以点后两位数字结尾?
我试图使用正则表达式测试Java中的字符串是否以点后两位数字结尾。如何才能做到这一点
类似“500.23”的内容应该返回true,而“50.3”或“50”应该返回false
我尝试了类似"500.00".matches("/^[0-9]{2}$/")
的方法,但它返回false
你可以在下面搜索框中键入要查询的问题!
我试图使用正则表达式测试Java中的字符串是否以点后两位数字结尾。如何才能做到这一点
类似“500.23”的内容应该返回true,而“50.3”或“50”应该返回false
我尝试了类似"500.00".matches("/^[0-9]{2}$/")
的方法,但它返回false
# 1 楼答案
首先,正斜杠根本不是正则表达式的一部分。但是,有些语言使用它们来定义正则表达式,而不是java,所以不要使用它们
其次,在java中
matches()
必须匹配整个字符串才能返回true(因此^
和$
都隐含在正则表达式中)试试这个:
请注意,在java中,正则表达式中的bash斜杠需要通过字符串文本中的进一步反斜杠进行转义
# 2 楼答案
使用此
regex
# 3 楼答案
下面是一个正则表达式,它可能会帮助您:
它可能既不是完美的,也不是最有效的,但它应该引导你走向正确的方向
^
说表达式应该从这里开始\d
查找任何数字+
说,前导\d可以根据需要频繁出现(1–无穷大)\.
表示您期待一个点(.)一度\d{2,2}
这就是诀窍:它说你想要2个数字,而且正好是2个数字(不少于也不多于)$
告诉您表达式在那里结束(在两位数之后)在Java中,需要转义\以便:
编辑
如果你不需要点前面的数字(
.
),或者你真的不在乎点前面的数字,那么你可以用一个.*
替换第一个\d+
,就像波西米亚人的回答一样。(非转义)点表示表达式可以包含任何字符(不仅仅是数字字符)。那么,即使是前面的^
也可能不再需要了