douzhuiqing1151 2017-07-24 09:43
浏览 99
已采纳

什么是各种白色空间变体?

I want to replace all kind of white spaces by an underscore.

But my problem is that there are many kinds of white spaces. Till now found is:

  1. non-breaking space
  2. en space
  3. em space
  4. thin space

I am using

preg_replace("/\p{Z}/", "_", $text);

I want a list of all Types of white spaces.

  • 写回答

1条回答 默认 最新

  • douzhi7754 2017-07-24 09:45
    关注

    You may use

    preg_replace("/\s/u", "_", $text);
    

    The u modifier will make \s Unicode aware and it will match any Unicode whitespace chars.

    Here is a test on a U+0020U+00A0U+1680U+2000U+2001U+2002U+2003U+2004U+2005U+2006U+2007U+2008U+2009U+200AU+202FU+205FU+3000U+2028U+2029TextU+000B \t string:

    $text = "                 
    
    Text\x0B
    \t";
    $res = preg_replace("/\s/u", "_", $text);
    echo $res; // => ___________________Text____
    

    See the PHP demo

    U+0020  SPACE
    U+00A0  NO-BREAK SPACE
    U+1680  OGHAM SPACE MARK
    U+2000  EN QUAD
    U+2001  EM QUAD
    U+2002  EN SPACE
    U+2003  EM SPACE
    U+2004  THREE-PER-EM SPACE
    U+2005  FOUR-PER-EM SPACE
    U+2006  SIX-PER-EM SPACE
    U+2007  FIGURE SPACE
    U+2008  PUNCTUATION SPACE
    U+2009  THIN SPACE
    U+200A  HAIR SPACE
    U+202F  NARROW NO-BREAK SPACE
    U+205F  MEDIUM MATHEMATICAL SPACE
    U+3000  IDEOGRAPHIC SPACE
    U+2028  LINE SEPARATOR
    U+2029  PARAGRAPH SEPARATOR
    U+000A  LINE FEED 
    U+000B  LINE TABULATION
    U+000D  CARRIAGE RETURN (CR)
    U+0009  CHARACTER TABULATION
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?