我有以下字符串作为输入:
"2.0,3.00,-4.0,0.00,-0.00,0.03,2.01,0.001,-0.03,101"
Run Code Online (Sandbox Code Playgroud)
最终输出将如下:
"2,3,-4,0,0,.03,2.01,.001,-.03,101"
Run Code Online (Sandbox Code Playgroud)
即所有前导和尾随零将被删除,正/负零点将会更加简单为零.
我们可以通过首先拆分字符串并为每个部分使用Regex来实现这一点.但我的字符串大小超过10000.
我们怎样才能实现这个目标Regex?
编辑:
答案分析:
我用String测试了所有答案,"0.00,-0.00,00.00,-00.00,40.00,-40.00,4.0,-4.0,4.01,-4.01,04.01,-04.01,004.04,-004.04,0004.040,-0004.040,101,.40,-.40,0.40,-0.40"并且WiktorStribiżew的答案通过了所有的测试用例.(见这里:https://regex101.com/r/tS8hE3/9)大部分案例都通过了其他答案,但并非全部.
根据php文档,以下表达式在调用时返回true empty($var)
我已经找到了如何通过使用,empty($var) && $var != 0但为什么PHP开发人员这样做"解决"问题?我认为这很荒谬,但是你有这个代码:
if (empty($_POST["X"])) {
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
我认为"0"不是空的,空的是什么时候什么都没有!也许最好使用它
if (isset($x) && x != "") {//for strings
doSomething();
}
Run Code Online (Sandbox Code Playgroud)