匹配“Double, Double, Double, Double”字符串

我想使用正则表达式匹配“Double、Double、Double、Double”字符串(用于检查 WPF 应用程序中 BorderThickness 的验证)


我在 stackoverflow 上找到了许多类似的答案,但没有一个对我不起作用。


我[0-9]{4},[0-9]{4}在这个页面上找到了,但它不起作用,因为我需要- + , .字符串中的字符。


这是我的代码:


private static readonly Regex _regex = new Regex("[0-9]{4},[0-9]{4}"); 


public static bool TextIsThickness(string text)

{

    return !_regex.IsMatch(text);

}

示例输入字符串:


-1.4,2.75,0,10


注意:这不是重复的,我需要 4 个用逗号分隔的双数,与“双数范围验证的正则表达式”不同


请告诉我我该怎么做?


吃鸡游戏
浏览 160回答 3
3回答

一只名叫tom的猫

您只需要找到一个双精度的正则表达式,然后使用,分隔符重复 4 次:^(?:x,){3}x$x1 双倍的模式在哪里。从这篇文章中,一个双倍的模式是:[+-]?([0-9]*[.])?[0-9]+所以整个正则表达式将是:^(?:[+-]?([0-9]*[.])?[0-9]+,){3}[+-]?([0-9]*[.])?[0-9]+$演示

ABOUTYOU

(([\+\-]\s?)?\d+(\.\d+)?,){3}([\+\-]\s?)?\d+(\.\d+)?如果我理解正确,您想找到任何序列:它可能以也可能不以+ or -运算符开头,在运算符之后可能有也可能没有空格(如果有的话)。然后是 1 个或多个数字的序列,后面可能有也可能没有文字.,以及一个或多个数字。所有这4次。前三个都以文字结尾,。

慕斯709654

要回答您的问题,您可以使用以下 RegEx:(?:[+-]?\d+\.?\d*,){3}(?:[+-]?\d+\.?\d*)它将匹配:以一个或多个数字开头/不开头+或-后跟一个或多个数字的数字,一个可选的.(点)后跟以,(逗号)结尾的零个或多个数字。这重复了 3 次,第四次不以逗号结尾。这符合您的示例。
打开App,查看更多内容
随时随地看视频慕课网APP