<?php
echo preg_replace('/(?<!\pL)(.){1,4}(?!\pL)/','%','Pamiętam i tak będę z tobą jestem jestem i czuweam dfgd....');
?>
如何做,如果jestem
将有从1到4个字符,以不输出这一点?
((?<!\pL)(?!\pL)){1,4}
我希望有这样的结果:
Pamiętam jestem jestem czuweam dfgd....
发布于 2017-05-04 05:24:34
你可以用
$s = 'Pamiętam i tak będę z tobą jestem jestem i czuweam dfgd.... Teraz idę do kina. A teraz nie idę.';
echo preg_replace('/(?<!\S)\S{1,4}(?!\S)/u','%', $s);
// => Pamiętam % % % % % jestem jestem % czuweam dfgd.... Teraz % % kina. % teraz % %
模式细节
(?<!\S)
-必须有空格符号或字符串的开头紧邻.\S{1,4}
-1到4个非空白字符(?!\S)
-在这些1-4个字符之后,必须有一个空格符号或字符串的末尾.见PHP演示。
不要忘记/u
UNICODE修饰符,因为您使用的是Unicode字符串。
https://stackoverflow.com/questions/43784119
复制相似问题