【问题标题】:Regex to strip non utf-8 characters but new line正则表达式去除非 utf-8 字符但换行
【发布时间】:2015-07-03 11:58:46
【问题描述】:

我有一个包含换行符和一些非 utf8 字符的字符串。我正在尝试编写一些将替换非 utf-8 字符的正则表达式,但它应该保留行尾。

以下是我从 PHP 获得的内容

PHP preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $string);

它去除了非 utf-8 字符,但它也去除了新的行尾,我不知道该怎么做。

我尝试了/[\x00-\x1F\x80-\xFF\^\n]/,但没有成功。

【问题讨论】:

    标签: php regex utf-8


    【解决方案1】:

    在开始时添加一个负前瞻。现在这将不匹配换行符。

    preg_replace('/(?!\n)[\x00-\x1F\x80-\xFF]/', '', $string);
    

    preg_replace('/(?![\n\r])[\x00-\x1F\x80-\xFF]/', '', $string);
    

    【讨论】:

      猜你喜欢
      • 2016-10-06
      • 2014-02-01
      • 1970-01-01
      • 2016-10-02
      • 2011-12-27
      • 2015-08-19
      • 2014-01-28
      • 1970-01-01
      • 2019-02-27
      相关资源
      最近更新 更多