Php 如何将字符串拆分为数组?
我尝试将字符串拆分为数组。计算符号之间的所有字符串Php 如何将字符串拆分为数组?,php,string,preg-split,Php,String,Preg Split,我尝试将字符串拆分为数组。计算符号之间的所有字符串+/*-: $keywords = preg_split("/[\s,-]*[+-*]+/", "quanity*price/2+tax"); 这就是我努力实现的目标: Array ( [0] => quantity [1] => price [1] => tax ) 但结果是一个空字符串。这将在存在以下任何字符串的位置拆分该字符串:+/*并从中创建一个数组: $string = "quanity*p
+/*-
:
$keywords = preg_split("/[\s,-]*[+-*]+/", "quanity*price/2+tax");
这就是我努力实现的目标:
Array
(
[0] => quantity
[1] => price
[1] => tax
)
但结果是一个空字符串。这将在存在以下任何字符串的位置拆分该字符串:+/*并从中创建一个数组:
$string = "quanity*price/2+tax";
$str_arr = preg_split ("/[-*\/+\d]+/", $string);
print_r($str_arr);
为清晰起见,将代码与示例一起发布。这将在存在以下任何字符串的位置拆分字符串:+/*并从中创建一个数组:
$string = "quanity*price/2+tax";
$str_arr = preg_split ("/[-*\/+\d]+/", $string);
print_r($str_arr);
为清晰起见,将代码与示例一起发布。使用第四只鸟推荐的正则表达式:
$keywords = preg_split("/[-*\/+\d]+/", "quanity*price/2+tax", -1, PREG_SPLIT_NO_EMPTY);
PREG\u SPLIT\u NO\u EMPTY
应该删除空值()。使用第四只鸟推荐的正则表达式:
$keywords = preg_split("/[-*\/+\d]+/", "quanity*price/2+tax", -1, PREG_SPLIT_NO_EMPTY);
PREG\u SPLIT\u NO\u EMPTY
应删除空值()。在您尝试的模式中,第二个字符类与数字不匹配,应将连字符转义或放在开头/结尾
您可以改用单个字符类。如果将分隔符更改为除/
以外的其他值,如~
,则不必转义正斜杠
[-*\/+\d]+
|
比如说
$strings = [
"quanity*price/2+tax",
"quanity*price/2"
];
foreach ($strings as $string) {
$keywords = preg_split("~[-*/+\d]+~", $string, -1, PREG_SPLIT_NO_EMPTY);
print_r($keywords);
}
输出
Array
(
[0] => quanity
[1] => price
[2] => tax
)
Array
(
[0] => quanity
[1] => price
)
如果还希望匹配0+前面的空白字符,请使用逗号:
[\s,]*[-*/+\d]+
在您尝试的模式中,第二个字符类与数字不匹配,应将连字符转义或放在开头/结尾 您可以改用单个字符类。如果将分隔符更改为除
/
以外的其他值,如~
,则不必转义正斜杠
[-*\/+\d]+
|
比如说
$strings = [
"quanity*price/2+tax",
"quanity*price/2"
];
foreach ($strings as $string) {
$keywords = preg_split("~[-*/+\d]+~", $string, -1, PREG_SPLIT_NO_EMPTY);
print_r($keywords);
}
输出
Array
(
[0] => quanity
[1] => price
[2] => tax
)
Array
(
[0] => quanity
[1] => price
)
如果还希望匹配0+前面的空白字符,请使用逗号:
[\s,]*[-*/+\d]+
你的意思是在
[-*\/+\d]+
上拆分吗?你可以将-
移动到字符类的开头/结尾或转义\-
哦,这是我真正需要的网站。谢谢不,但是第四只鸟没有问为什么不在这里爆炸+str\u替换??@peace\u love你可以这样做你的意思是在[-*\/+\d]+
上分裂你可以将-
移动到字符类的开头/结尾或转义\-
哦,这是我真正需要的网站。谢谢你不,但是第四只鸟没有问为什么不爆炸+str_替换这里??@peace_love你可以这样做你的回答的结果:array:1[▼ 0=>“数量*价格/2+税”]
大收获,@peace\u love。我在preg_split
中遗漏了可选的第三个参数,并将标志放错了位置。我已经更新了我的答案,为$limit参数添加了-1
,以指定无限制。我也可以通过0
或null
。您的回答结果:array:1[▼ 0=>“数量*价格/2+税”]
大收获,@peace\u love。我在preg_split
中遗漏了可选的第三个参数,并将标志放错了位置。我已经更新了我的答案,为$limit参数添加了-1
,以指定无限制。我也可以通过0
或null
。