Joh*_*yer 0 regex parsing string-formatting
我正在使用一个使用%作为mod符号的数学解析器.我想将它用于百分号而不是允许用户键入"25%*10"或"25%的10"并收到答案"2.5"(他们可以键入任何内容).
然后我使用正则表达式获取"25%"(可以在字符串的任何部分)并进行简单的计算(25/100)然后用计算值替换字符串中的25%传递给数学解析器.基本上我在将完整字符串传递给数学解析器之前,对百分号前面的数字做了一些预计算.
我一直在与正则表达式斗争,并希望有人可以帮助我.
谢谢
最简单的方法是让数学解析器进行划分:
s/([0-9.]+)%/($1\/100)/g
Run Code Online (Sandbox Code Playgroud)
这只是将"25%"替换为"(25/100)"...所以如果用户键入" 25%*10",他们现在将拥有" (25/100)*10",在评估时给出正确答案.
或者,在Perl中,您可以:
s{([0-9.]+)%}{$1/100}eg
Run Code Online (Sandbox Code Playgroud)
将Perl计算除以100的除法并将其传递给数学解析器