C# 奇怪的正则表达式匹配

C# 奇怪的正则表达式匹配,c#,.net,regex,vb.net,C#,.net,Regex,Vb.net,我有以下正则表达式: Regex.IsMatch(someString, "[1-9][0-9]*\.[0-9]") 我希望someString只允许像x.y这样的表单,其中x>0和0您需要在此处使用行首^和行尾$锚定,否则您将获得部分匹配,如在您的情况下,更改为: ^[1-9][0-9]*\.[0-9]$ 您的原始表达式与1.02的一部分相匹配,即1.0,尽管它是有效的,并且单独使用时实际上是有效的,锚点阻止表达式匹配部分字符串,并强制整个表达式匹配。0>=y>=9不可能正确…因为y必须是

我有以下正则表达式:

Regex.IsMatch(someString, "[1-9][0-9]*\.[0-9]")

我希望
someString
只允许像
x.y
这样的表单,其中
x>0
0您需要在此处使用行首
^
和行尾
$
锚定,否则您将获得部分匹配,如在您的情况下,更改为:

^[1-9][0-9]*\.[0-9]$

您的原始表达式与
1.02
的一部分相匹配,即
1.0
,尽管它是有效的,并且单独使用时实际上是有效的,锚点阻止表达式匹配部分字符串,并强制整个表达式匹配。

0>=y>=9不可能正确…因为y必须是负数并且同时大于9,这根本不起作用。请再次描述您希望y为哪些值。我注意到您的正则表达式字符串无效,因为
\。
将报告为“无法识别的转义序列”。您应该确保您提供的代码正在运行。:)@伊格尔:我想你可能需要重读一遍。我不确定从哪里得到x必须是负数并且大于9,并且y是一个单位数(这基本上就是这么说的)对我来说似乎很好。应该是
0 0>=y>=9只是一个对y没有解的方程。作者在他的问题中将这一点更正为0
Regex.IsMatch(someString, "[1-9][0-9]*\.[0-9]{1}")
^[1-9][0-9]*\.[0-9]$