我想用 相同的出现次数替换前导空格,即
位说明:
如果输入中存在一个前导空格,那么它应该替换为一个
如果输入中存在两个前导空格,那么它应该替换为两个
如果输入中存在n个前导空格,那么它应该用n次精确替换
Ex.1:
My name is XYZ
output:
My name is XYZ
Ex.2 :
My name is XYZ
output:
My name is XYZ
Run Code Online (Sandbox Code Playgroud)
我想用PHP正则表达式替换只有前导空格.
欢迎您的建议.
谢谢
preg_replace('/\G /', ' ', $str);
Run Code Online (Sandbox Code Playgroud)
\G 匹配最后一个匹配结束的位置,如果没有上一个匹配则匹配字符串的开头.
编辑:实际上,在PHP中,它匹配下一个匹配应该开始的位置.这不一定与上一场比赛结束的地方相同.
$len_before = strlen($str);
$str = ltrim($str, ' ');
$len_after = strlen($str);
$str = str_repeat(' ', $len_before - $len_after) . $str;
Run Code Online (Sandbox Code Playgroud)
使用preg_replace还有
$str = preg_replace('/^( +)/e', 'str_repeat(" ", strlen("$1"))', $str);
Run Code Online (Sandbox Code Playgroud)
但请注意,它使用了/e标志。
有关结果,请参阅http://www.ideone.com/VWNKZ。
| 归档时间: |
|
| 查看次数: |
1648 次 |
| 最近记录: |