regex - 分数的 CLR 正则表达式

标签 regex clr

我需要一个用于分数或整数和分数的 CLR 正则表达式,其中

1/2是正确的 12 2/3也是正确的

并且减号可以在任何数字之前弹出。

我首先想到了-?([0-9]* )?-?[0-9]+\/-?[0-9]+但这似乎允许 2/7 12例如,也是如此。

最佳答案

好吧,该正则表达式将分为两部分,(可选)整数:

(:?-?\d+ )?

和小数部分:

-?\d+/-?\d+

并且我们需要匹配完整的字符串;所以:

^(:?-?\d+ )?-?\d+/-?\d+$

测试一下:

PS> $re=[regex]'^(:?-?\d+ )?-?\d+/-?\d+$'
PS> "1/2","12 1/2","-12 2/3","-5/8","5/-8"|%{$_ -match $re} | gu
True

但是,这也允许 "-12 -2/-3" ,或者类似 "1 -1/2" 的东西,这些东西的作用并不大感觉。

预计到达时间:您原来的正则表达式也有效。它只是缺少字符串开头和结尾的 anchor (分别为 ^$)。添加这些使其正常工作。

关于regex - 分数的 CLR 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1601121/

相关文章:

php - 用正则表达式确定字符串的结构

javascript - 正则表达式逻辑和或

c# - 多个程序集中相同的完全限定类名

c# - 将 .NET 应用程序转换为 x86 native 代码

python - 使用 re.sub 匹配和替换 float

python正则表达式给出空字符串

正则表达式匹配 sed 中的非 ASCII 字符

c# - 为什么值类型存储在堆栈上?

visual-studio-2010 - 禁止在 VS2010 中生成 metagen 文件

c# - CLR 如何加载 DLL?