【问题标题】:Why is there an extra empty row when splited by multibyte punctuation?为什么用多字节标点分隔时会有额外的空行?
【发布时间】:2009-09-21 04:03:49
【问题描述】:

试试这个:

$pattern = '/[\x{ff0c},]/u';

//$string = "something here ; and there, oh,that's all!";
$string = 'hei,nihao,a ';


echo '<pre>', print_r( preg_split( $pattern, $string ), 1 ), '</pre>';
exit();

输出:

<pre>Array
(
    [0] => hei,nihao,a
)
</pre>

【问题讨论】:

  • 您不是只处理您提出的上一个问题,而是开始另一个更像是对某人答案的评论? stackoverflow.com/questions/1452777/…
  • 哦,利弊总是有的。我敢肯定有人很高兴我这样做了。但显然有人不是。我该怎么办?我应该去哪里?

标签: php split multibyte


【解决方案1】:

您拥有的字符是全角逗号(十六进制 ff0c)以及常规逗号。您是否尝试过将其更新到我的版本?

<?php
$pattern = '/[\x{ff0c},]/u';

//$string = "something here ; and there, oh,that's all!";
$string = 'hei,nihao,a ';


echo '<pre>', print_r( preg_split( $pattern, $string ), 1 ), '</pre>';

输出:

Array
(
    [0] => hei
    [1] => nihao
    [2] => a 
)

【讨论】:

  • 在之前的另一篇文章中,您说您已将其更新为像我的一样。你有没有和我的一样完全?如果是这样,请粘贴我拥有的新版本。
  • 我试了你的代码,结果和你的不一样,是
    Array ( [0] => hei,nihao,a ) 
  • sigh 你能用我的更新版本更新你的帖子,让我看看吗?您可能犯了一些错误并遗漏了某些东西,如果您手动复制它,您可能会遗漏正则表达式后面的“u”字符,这就是为什么我想看看您有什么现在
  • 好的。我的仍然给我同样的结果。你有什么php版本?您的可能不支持正则表达式字符集中的 unicode。
  • 只是好奇,你最初是如何生成这个角色的?您正在处理英语以外的语言?
猜你喜欢
  • 2017-08-25
  • 2013-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 2014-06-22
相关资源
最近更新 更多