![]() |
1
2
为什么要使用regexp?!用一个 单一的 regexp,但是您可以使用几个(一个用于3+数字大小写,一个用于2-数字大小写,一个用于1-数字大小写)。但是… 我不知道确切的C语法,但我知道以下几点:
只要你的数字足够小,你的浮点类型的精度比0.01高,你就可以做你想做的事情。对于双打来说,这已经进入了四级。 编辑1因为您需要regexps,所以可以使用三种语言(这里是Perl语法,但是…):
其中只有一个匹配(变量1需要3个字符,变量2正好是2个字符,变量3正好是1个字符),因此如果可以附加多个regexp,则可以使用此选项。我可以在Perl中把所有这些都放到一个regexp中,但是我不知道您是否拥有完整的Perlregexp特性(我对此表示怀疑)。毕竟,Perl可以做到:
但那相当欺骗。你的regexp引擎有类似的吗?或者你说这是数据库的东西;你能用SQL吗?
|
![]() |
2
3
.NET regex可以使用匹配计算器将匹配转换为所需的内容:
结果是:
|
![]() |
3
2
正则表达式不能创建不存在的内容,因此不能添加不存在的零。所以答案是你不应该使用正则表达式。
你最好的选择是
因为您希望在数据库中定义一个通用规则集,所以我认为这里的错误是您将数字规则与字符串规则混合在一起。您应该使数据库支持不同类型的规则。 我认为您应该有一个额外的列,指定该值是应该用数字修改还是作为字符串修改。如果应该对其进行数字修改,那么您可以让当前用于替换的列指定一个乘法器或一些类似的乘法器。
如果你想做得更进一步,你可以有一个简单的公式评估器,它可以做如下的事情:
|
![]() |
4
0
您是否有理由不将字符串转换为数字、除以100并转换回具有适当格式的字符串? |
![]() |
5
0
这可能无法准确回答OP的问题,但它可以为您提供一些关于如何根据条件利用匹配参数的想法。
如果月份为12,下面的方法将交换日期的日和月部分。
|
![]() |
DotFX · RegEx捕获关键字前但括号后的所有内容 6 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 6 月前 |
![]() |
iato · 确保正则表达式不从命名材料中的数字中提取 7 月前 |
![]() |
vr8ce · 非成对标记中特定字符的正则表达式 7 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 7 月前 |
![]() |
Carsten · 使用最近的搜索模式更改文本块 7 月前 |