php - 如何使用 php 拆分字符串中的负值和正值?

标签 php regex

我在 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/

相关文章:

php - 如何检查 file_exists in Smarty

regex - 使用 sed 重新排列复杂的字符串

regex - PowerShell按第二索引排序

php - Laravel Eloquent Query 根据设定的条件查询多条记录

php - Xcode 8.3从php和json获取数据

php - 如何在 Yii 更新时禁用字段

java - 如何从字符串中拆分电子邮件

jquery - 寻找正则表达式仅替换三位数后的空格

javascript - 特定格式的正则表达式(javascript)

php - vue组件html元素渲染