我很难弄清楚这一点。
我有这样的数据行:
$data = "阿尔法自然资源公司 COM 02076X102 2,077 45,700 x
我希望在有多个空间的地方“爆炸”这条线。我遇到的问题是我只找到了炸毁有一个或多个空格的线的解决方案 - 我希望炸毁有多个空格但不仅仅是一个空格的这条线(所以例如,Alpha Natural Resources Inc 保持在一起)。
我知道答案可以在 preg_split 中找到,但我无法找出正确的代码..
谢谢
我很难弄清楚这一点。
我有这样的数据行:
$data = "阿尔法自然资源公司 COM 02076X102 2,077 45,700 x
我希望在有多个空间的地方“爆炸”这条线。我遇到的问题是我只找到了炸毁有一个或多个空格的线的解决方案 - 我希望炸毁有多个空格但不仅仅是一个空格的这条线(所以例如,Alpha Natural Resources Inc 保持在一起)。
我知道答案可以在 preg_split 中找到,但我无法找出正确的代码..
谢谢
preg_split('/\s\s+/', $data)
这虽然匹配任何空格的倍数,例如返回、制表符等,preg_split('/ +/', $data)
但将仅匹配空格键中的空格。\s 选择任何空白字符。删除多个空格
这也可以通过多个空格、单个空格以及单击新选项卡来拆分数据。
preg_split('/\s+/', $data)
这是一篇旧帖子,但我想我会为了完整性而添加。
$arr = preg_split('/[\s][\s]{1,3}/', $string,-1,PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
这有更多的选择可以使用。请记住在括号内您自定义要查找的确切空格数...
/[\s][\s]{1,4}/
或仅在第一次匹配后一次或多次 /[\s][\s ]+/ 还知道有一些标志可以设置为使处理输出更容易。
PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE
一个让它不返回空结果,另一个在返回的内容中包含匹配的内容。
还有其他(http://php.net/preg-split)捕获偏移量但稍微改变输出结构。
//////////////////////// update/update/update ///////////////
我结束havng to havng to havng使用
/(\ w+\ w+) /
//匹配单词并将其和空格返回。
由于某种原因 preg_split 不会替换空格。
它对我来说很陌生,因为它在某个时间点起作用,然后在经过一些编辑后就没有了。回到它工作的时候,它在我的测试页面和我的实时页面上工作。开始对其进行故障排除和bam添加编辑,结果中均不返回空白。所以这对我来说非常简单
这应该有效:
preg_split('/ +/', $data)
实现这一点的最简单方法是使用\s
which 表示空格。要使其仅在至少有两个 ( \s\s
) 时才起作用,最好使用花括号表示法来表示 2 或更多。通过不指定花括号中的第二个参数,您说的任何内容都大于或等于 2。
preg_split('/\s{2,}/', $data);
要测试此代码,请尝试以下操作
$data = 'hello here is a test! Hello World';
$p = preg_split('/\s{2,}/', $data);
die(var_dump($p));
其输出如下:
array(5) {
[0]=>
string(5) "hello"
[1]=>
string(4) "here"
[2]=>
string(2) "is"
[3]=>
string(1) "a"
[4]=>
string(17) "test! Hello World"
}