gpt4 book ai didi

php - 在 PHP 中使用正则表达式替换空格

转载 作者:可可西里 更新时间:2023-11-01 00:18:16 25 4
gpt4 key购买 nike

我对正则表达式还很陌生。我需要替换一段多行文本中的空格。替换规则如下:

  • 将行首的所有空格替换为不间断空格 ( )。
  • 用相同数量的不间断空格替换任何重复空格的实例(多个空格在一起)。
  • 不在行首的单个空格保持不变。

我使用了 Regex Coach构建匹配模式:

/( ){2,}|^( )/

假设我有这个输入文本:

asdasd asdasd  asdas1
asda234 4545 54
34545 345 34534
34 345

使用 PHP 正则表达式替换函数(如 preg_replace() ),我想得到这个输出:

asdasd asdasd  asdas1
 asda234 4545    54
  34545 345  34534
34 345

我很乐意使用正则表达式进行简单的文本替换,但我无法弄清楚如何在匹配项中多次替换以获得我想要的输出。

最佳答案

我想找到每个空格并替换它会更容易。为此,请使用“向前看”和“向后看”组。

或者,找到一个空格 (\x20),该空格由任何单个空格 (\s) 开头或后跟;但是,只替换空格。

$str = "asdasd asdasd  asdas1\n asda234 4545    54\n  34545 345  34534\n34 345\n";

print preg_replace("/(?<=\s)\x20|\x20(?=\s)/", "&#160;", $str);

(我选择了 #160,因为 markdown 解析 nbsp。)

结果:

asdasd asdasd&#160;&#160;asdas1
&#160;asda234 4545&#160;&#160;&#160;&#160;54
&#160;&#160;34545 345&#160;&#160;34534
34 345

有关更多信息,请查看 PCREperlre .


回复评论

@ Sprogz : 一开始我也是这么想的。但是这个例子在第 1 行和第 2 行之间显示了 "\n "=> "\n "

关于php - 在 PHP 中使用正则表达式替换空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/208046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com