使用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实施和解释。非常感谢你!