Php 使用多个分隔符将文本拆分为修剪值数组
我有一组字符串,我需要将它们分块到一个数组中。 字符串需要在Php 使用多个分隔符将文本拆分为修剪值数组,php,arrays,string,preg-split,delimited-text,Php,Arrays,String,Preg Split,Delimited Text,我有一组字符串,我需要将它们分块到一个数组中。 字符串需要在/、、、、和或&上拆分 不幸的是,一个字符串可能包含两个需要拆分的字符串,因此我不能使用split()或explode() 例如,一个字符串可以说first pass/going beyond&然后turn,因此我尝试获取一个返回的数组: array('first past', 'going beyond', 'then turn') 我当前使用的代码是 $splittersArray=array('/', ',', ' with '
/
、、
、、和或&
上拆分
不幸的是,一个字符串可能包含两个需要拆分的字符串,因此我不能使用split()
或explode()
例如,一个字符串可以说first pass/going beyond&然后turn
,因此我尝试获取一个返回的数组:
array('first past', 'going beyond', 'then turn')
我当前使用的代码是
$splittersArray=array('/', ',', ' with ','&');
foreach($splittersArray as $splitter){
if(strpos($string, $splitter)){
$splitString = split($splitter, $string);
foreach($splitString as $split){
我似乎在PHP中找不到允许我这样做的函数。
我是否需要将字符串传递回漏斗顶部,并在字符串被一次又一次拆分后继续通过foreach()
这似乎不是很有效。使用正则表达式和
在您提到的情况下,您将获得以下拆分数组:
$splitString = preg_split('/(\/|\,| with |\&/)/', $string);
要简洁地编写模式,请使用字符类作为单字符分隔符,并将with
分隔符作为值添加到管道后面(regex中的“or”字符)。在分隔符组的任一侧允许零个或多个空格,以便不需要修剪输出中的值
我正在使用PREG\u SPLIT\u NO\u EMPTY
函数标志,以防在字符串的开头或结尾出现分隔符,并且您不希望生成任何空元素
代码:()
输出:
array (
0 => 'first past',
1 => 'going beyond',
2 => 'then turn',
3 => 'everyone',
)
“不幸的是,一个字符串可能包含两个需要拆分的字符串,所以我不能使用拆分或分解。”您能解释一下这是什么意思吗?我只是添加了一个示例来澄清
array (
0 => 'first past',
1 => 'going beyond',
2 => 'then turn',
3 => 'everyone',
)