Rom*_*anz 3 php regex replace preg-replace
我对正则表达式很新.我需要替换一行多行文本中的空格.替换规则如下:
)替换行首的所有空格.我使用Regex Coach来构建匹配模式:
/( ){2,}|^( )/
Run Code Online (Sandbox Code Playgroud)
我们假设我有这个输入文本:
asdasd asdasd asdas1
asda234 4545 54
34545 345 34534
34 345
Run Code Online (Sandbox Code Playgroud)
使用PHP正则表达式替换函数(如preg_replace()),我想得到这个输出:
asdasd asdasd  asdas1
 asda234 4545    54
  34545 345  34534
34 345
Run Code Online (Sandbox Code Playgroud)
我很高兴使用正则表达式进行简单的文本替换,但是我无法解决如何在匹配中替换多次以获得我想要的输出.
我猜想找到每个空间并更换它会更容易.为此,请使用"预见"和"后视"组.
或者,找到一个\x20由任何单个空格(\s)引导或后跟的空格(); 但是,只能更换空间.
$str = "asdasd asdasd asdas1\n asda234 4545 54\n 34545 345 34534\n34 345\n";
print preg_replace("/(?<=\s)\x20|\x20(?=\s)/", " ", $str);
Run Code Online (Sandbox Code Playgroud)
(因为降价解析,我选择了#160)
结果是:
asdasd asdasd  asdas1
 asda234 4545    54
  34545 345  34534
34 345
Run Code Online (Sandbox Code Playgroud)
回复评论
@ Sprogz:起初,我的想法是一样的.但是该示例显示了"\n " => "\n "第1行和第2行之间的行.