PHPの「preg_replace」またはそれより短いコードで特定の投稿を非表示にするにはどうすればよいですか?
指定したテキストの後の最初の5桁と最後の5桁を表示したい。文字列は常にで始まり、シーケンスには常に16個の数字があります。数字だけが変わります。真ん中の6桁をアスタリスクに置き換えたい。pub-
pub-
$string = "pub-9752787982789258";
echo "pub-" . substr(explode("-", $string)[1], 0, 5) . '******' . substr(explode("-", $string)[1], 11, 5);
結果:
pub-97527******89258
使用できる特定の形式に一致する文字列でのみ、中央の部分文字列を非表示にする必要がある場合
preg_replace('~(?:\G(?!^)|^pub-\d{5}(?=\d*$))\K\d(?=\d{5})~', '*', $string)
詳細
(?:\G(?!^)|^pub-\d{5}(?=\d*$))
-前回の正常な一致の終了時またはpub-
文字列の先頭、その後5桁、その後に文字列の末尾までの0桁以上、その後\K
-これまでに一致したテキストを省略します\d
-任意の1桁に一致(?=\d{5})
-右側に5桁の数字があることを確認してください。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加