我正在使用PHP,并尝试在所有3x^3 - 4x^2 + 2x - 3 + 5x^5 - 2x^7
(减号)和-
(加号)符号之间拆分此字符串:+
。我尝试过使用explode(),但这只能接受一个条件(仅-
或+
,而不是两者都有)。
我查看了preg_split()函数,并尝试使用"/+|-/"
作为第一个条件的正则表达式,但它不起作用,因为+
不被视为字符" +",但作为正则表达式的运算符。如何使用正确的正则表达式在-
和+
之间拆分字符串?
更新:Sahil Gulati,谢谢你的回复。您发布的正则表达式完美无缺。然而,在阅读了symcbean的评论之后,我意识到我还需要保留这些标志。我该如何做到这一点?
答案 0 :(得分:1)
您应该使用此+
转义\+
字符,您可以在此使用此/\+|\-/
或/[\+\-]/
这两个正则表达式都表示+
和-
<?php
ini_set('display_errors', 1);
$string='3x^3 - 4x^2 + 2x - 3 + 5x^5 - 2x^7';
$segments=preg_split("/\+|\-/", $string);
print_r($segments);
答案 1 :(得分:0)
在阅读了您的问题更新后,您似乎可以在每个空白区域返回explode()
。
以下是单行:
$string='3x^3 - 4x^2 + 2x - 3 + 5x^5 - 2x^7';
var_export(explode(' ',$string));
输出:
array (
0 => '3x^3',
1 => '-',
2 => '4x^2',
3 => '+',
4 => '2x',
5 => '-',
6 => '3',
7 => '+',
8 => '5x^5',
9 => '-',
10 => '2x^7'
)