首页 > 解决方案 > php preg_replace 替换文本文件中的空格

问题描述

我正在尝试使用preg_replace.Content in text 从文本文件中删除一些内容,如下所示

1
    *useless*Text
                                    Steve Waugh

如何转换内容

1    Steve Waugh

我的代码在下面。它不起作用。我不知道我在哪里犯了错误?

$content = file_get_contents('test.txt');
$content = preg_replace('/\s[*]useless[*]Text\s/', '  ', $content);
file_put_contents('test.txt', $content);

标签: phppreg-replace

解决方案


如果您想保持缩进之前*useless*Text,使其Steve Waugh在结果之前,您可以使用捕获组。

\h*\R(\h+)[*]useless[*]Text\s*
  • \h*\R匹配 0+ 个水平空白字符和一个 Unicode 换行符序列
  • (\h+)捕获组 1,匹配 1+ 水平空白字符
  • [*]useless[*]匹配*useless*
  • Text\s*匹配Text和 0+ 个空白字符

查看正则表达式演示| php演示

在更换使用$1

preg_replace('/\h*\R(\h+)[*]useless[*]Text\s*/', '$1', $content);

要替换为预定的空格,您可以使用

\s*[*]useless[*]Text\s*

正则表达式演示

preg_replace('/\s*[*]useless[*]Text\s*/', '  ', $content);

推荐阅读