为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
吃鸡游戏 2022-01-09 15:36:45
我想使用正则表达式匹配“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 个用逗号分隔的双数,与“双数范围验证的正则表达式”不同请告诉我我该怎么做?
查看完整描述

3 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

您只需要找到一个双精度的正则表达式,然后使用,分隔符重复 4 次:

^(?:x,){3}x$

x1 双倍的模式在哪里。

从这篇文章中,一个双倍的模式是:

[+-]?([0-9]*[.])?[0-9]+

所以整个正则表达式将是:

^(?:[+-]?([0-9]*[.])?[0-9]+,){3}[+-]?([0-9]*[.])?[0-9]+$

演示


查看完整回答
反对 回复 2022-01-09
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

(([\+\-]\s?)?\d+(\.\d+)?,){3}([\+\-]\s?)?\d+(\.\d+)?

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


查看完整回答
反对 回复 2022-01-09
?
慕斯709654

TA贡献1840条经验 获得超5个赞

要回答您的问题,您可以使用以下 RegEx:

(?:[+-]?\d+\.?\d*,){3}(?:[+-]?\d+\.?\d*)

它将匹配:以一个或多个数字开头/不开头+-后跟一个或多个数字的数字,一个可选的.(点)后跟以,(逗号)结尾的零个或多个数字。这重复了 3 次,第四次不以逗号结尾。这符合您的示例。


查看完整回答
反对 回复 2022-01-09
  • 3 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信