我在 php 中有一个字符串变量,看起来像“0+1.65+0.002-23.9
”,我想拆分它们各自的值。
例如:
0
1.65
0.002
-23.9
我尝试用:
$keys = preg_split("/^[+-]?\\d+(\\.\\d+)?$/", $data);
但没有达到我的预期。
谁能帮帮我?非常感谢。
最佳答案
像这样:
$yourstring = "0+1.65+0.002-23.9";
$regex = '~\+|(?=-)~';
$splits = preg_split($regex, $yourstring);
print_r($splits);
输出(参见 live php demo ):
[0] => 0
[1] => 1.65
[2] => 0.002
[3] => -23.9
解释
- 我们的正则表达式是
+|(?=-)
。我们将根据匹配的内容进行拆分 - 它匹配
+
,或者|
... - 先行
(?=-)
匹配下一个字符是-
的位置,允许我们保留-
< - 然后我们分开!
选项 2,如果您决定还想保留 +
字符
(?=[+-])
这个正则表达式是一个前瞻性的断言下一个位置是加号或减号。就我的审美观而言,这是一个非常不错的解决方案。 :)
输出(参见 online demo) :
[0] => 0
[1] => +1.65
[2] => +0.002
[3] => -23.9
引用
关于php - 如何使用 php 拆分字符串中的负值和正值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24429630/