![]() |
1
6
最简单的方法是让数学解析器进行除法:
用“(25/100)”代替“25%”…因此,如果用户键入“
或者,在Perl中,您可以执行以下操作:
它会让Perl计算100的除法并将其传递给数学解析器。 |
![]() |
2
1
在“%”符号之前查找数字的正则表达式是
但是,数学表达式不是常规语言,因此正则表达式可能不是正确的工具。你应该告诉你 语法分析器 将“%”解释为“接受在此之前发生的一切,并将其除以100”。无论在这之前发生什么,“都可以是任何数学表达式,并且不会遇到运算符优先问题。您可以在语法树解析器中对它们进行排序。
将文本替换与真实语言特性相混合常常违反最小惊异原则。当用户看到“%”将前面的内容除以100时,他可能会尝试使用如下表达式
|
![]() |
DotFX · RegEx捕获关键字前但括号后的所有内容 6 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 7 月前 |
![]() |
iato · 确保正则表达式不从命名材料中的数字中提取 7 月前 |
![]() |
vr8ce · 非成对标记中特定字符的正则表达式 7 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 7 月前 |
![]() |
Carsten · 使用最近的搜索模式更改文本块 7 月前 |