Java 正则表达式中十进制数的问题

Java 正则表达式中十进制数的问题,java,regex,Java,Regex,我想要一个十进制数的正则表达式,比如00.0 我尝试了这个[0-9]{1,2}([0-9]{1}),效果非常好 但我必须在开头加上^,在结尾加上*$ 有没有办法让正则表达式与添加这些字符的正则表达式一样工作 ^([0-9]{1,2}([0-9]{1})*$-->无法执行我想要的操作 我的正则表达式应该看起来像^[这里的任何东西]*$ 任何帮助都将不胜感激 谢谢取决于正则表达式的类型,但对于许多正则表达式类型(posix、posix扩展、perl、python、emacs)(点)表示匹配任何符号。

我想要一个十进制数的正则表达式,比如00.0

我尝试了这个
[0-9]{1,2}([0-9]{1})
,效果非常好

但我必须在开头加上^,在结尾加上*$

有没有办法让正则表达式与添加这些字符的正则表达式一样工作

^([0-9]{1,2}([0-9]{1})*$-->无法执行我想要的操作

我的正则表达式应该看起来像^[这里的任何东西]*$

任何帮助都将不胜感激


谢谢

取决于正则表达式的类型,但对于许多正则表达式类型(posix、posix扩展、perl、python、emacs)
(点)表示匹配任何符号。要匹配点符号,您需要像
\.
一样引用它


要精确匹配一个数字,不需要在其末尾添加
{1}
。也就是说,
[0-9]{1}
[0-9]

取决于正则表达式的类型,但对于许多正则表达式类型(posix、posix扩展、perl、python、emacs)
(dot)意味着匹配任何符号。要匹配点符号,您需要像
\.
一样引用它


要精确匹配一个数字,不需要在其末尾添加
{1}
。也就是说,
[0-9]{1}
[0-9]

相同,我认为您需要。*最后


但是,你能给出一些你想匹配的字符串和你不想匹配的字符串的例子吗?>我认为你需要。*最后


但是,您能否回答一些您想要匹配的字符串和您不想要匹配的字符串的示例>

如果我很了解您需要什么,请尝试一下:

\^\d\d?(\.\d)?\*\$
这将匹配

\^       a carret ^
\d\d?    1 or 2 digit
(\.\d)?  eventually a dot and a digit
\*       an asterisk
\$       a dollar

如果我很了解您的需求,请尝试:

\^\d\d?(\.\d)?\*\$
这将匹配

\^       a carret ^
\d\d?    1 or 2 digit
(\.\d)?  eventually a dot and a digit
\*       an asterisk
\$       a dollar

我发现问题是*并且可以通过在*前面添加一对括号来排除它,比如
()*


^([0-9]{1,2}(\.[0-9])?)()*$
效果很好。

我发现问题是*并且可以通过在*前面添加一对括号来排除它,就像
()*



^([0-9]{1,2}(\.[0-9])?)()*$
效果很好。

你的意思是最后的
*$
?您可能也应该避开“
”:您的完美匹配可能匹配
00/0
00x0
@Jonathan Leffler-yes*$结尾和^开头。介于两者之间的任何内容。是否尝试在开头匹配文本
^
,在结尾匹配文本
*$
?类似于
^00.0*$
格式的字符串?它是什么类型的正则表达式?Posix、POSIXExtended、perl、python、emacs等等?@niksvp:听起来API已经相当不完整了。在添加前导的
^
和结尾的
*$
之前,是否将整个表达式包装在
()
中?你的例子似乎表明了这一点。你的意思是最后的
*$
?您可能也应该避开“
”:您的完美匹配可能匹配
00/0
00x0
@Jonathan Leffler-yes*$结尾和^开头。介于两者之间的任何内容。是否尝试在开头匹配文本
^
,在结尾匹配文本
*$
?类似于
^00.0*$
格式的字符串?它是什么类型的正则表达式?Posix、POSIXExtended、perl、python、emacs等等?@niksvp:听起来API已经相当不完整了。在添加前导的
^
和结尾的
*$
之前,是否将整个表达式包装在
()
中?你的例子似乎表明了这一点。这对我来说都是真实的,我知道,但我需要的是,在开头和结尾都有文字的正则表达式,如上所述,这对我来说都是真实的,我知道,但是我需要的是上面提到的以文字开头和结尾的正则表达式,你能告诉我正则表达式中“^”和“$”的用法吗?
^
表示行的开头,
$
表示行的结尾。因此,如果要匹配这些字符,必须对其进行转义。附加
*
表示前面(一组)字符的0倍或更多倍。感谢您的解释,我找到了问题的解决方案。你可以看看我的答案。:)你能告诉我“^”和“$”在正则表达式中有什么用吗?
^
表示行的开始,
$
表示行的结束。因此,如果要匹配这些字符,必须对其进行转义。附加
*
表示前面(一组)字符的0倍或更多倍。感谢您的解释,我找到了问题的解决方案。你可以看看我的答案。:)