使用preg_replace屏蔽所有字符,但有些针

时间:2016-12-05 12:26:50

标签: php regex

使用PHP preg_replace和regex

$string_1 = "leave sb. alone";
$string_2 = "pick one's way forward";
$string_2 = "suffer from sth.";

我需要用指定的字符掩盖每个字符串,但保留空格,撇号和一些字符串不变,如:

$mask_1 = "XXXXX sb. XXXXX";
$mask_2 = "XXXX XXX'X XXX XXXXXXX";
$mask_2 = "XXXXXX XXXX sth.";

在这种情况下,我想保留:某人。某事。空格和撇号。 任何帮助将不胜感激。

$mask_1 = preg_replace('/(sb.\K)?./s', 'X', $string_1);我只留下'sb'。但空间仍在变化。

PS:@Casimir et Hippolyte& @WiktorStribiżew答案是很好的解决方案,但我接受了Wiktor的SKIP-FAIL实施和解释。非常感谢你!

0 个答案:

没有答案