有时候看动画或小说看到很劲爆的地方,很想讲但又不能明讲,有防雷机器人的话就会很方便
来做一个可以用 * 符号标示要隐藏的字的机器人,安安*你*好 -> 安安█好,还有 * 符号前面是反斜线时跳过,安\*安你好 -> 安*安你好
要找到两个 * 符号中间的文字满容易的,用正规表示式 /\*(.*)\*/U
就能找出来,然後加上 lookbehind (?<!)
跳过前面有反斜线的,最後组合起来就像这样 /(?<!\\)\*(.*)(?<!\\)\*/U
在 PHP 的字串中两个反斜线 \\
会变成一个反斜线 \
,所以在 preg_match_all()
中要打四个反斜线 \\\\
这样才是 \\
我们来看看有没有抓对
抓到之後要先做一些处理,我们要把抓到的字串中间的反斜线去掉
$search
是待会要替换「原始字串」时用来作为「被替换字串」的,所以不做任何处理,$replace
就是去掉後的样子
清乾净後是把每个字都换成黑框框,作为待会「替换成的字串」
黑黑一坨啥都看不见
既然两种字串都蒐集到了,那当然就是把「原始字串」替换成一堆黑框框的字串啦
我们会需要两种替换,一是只把 *中间* 的字换成黑框框,另一种是不管遇到什麽字都换成黑框框
替换的结果
再来就是要把这些换来换去的东东放进 processInlineQuery 啦
首先如果查询的字串是空字串就显示查看说明
否则就来做字串替换,把刚刚那些东东塞进去
最後是把 $results
做出来,如果 $search
不是空阵列,而且替换完的字串 $text_hide
不是空字串,那就回传两个结果,不然就只回传 $text_hide_all
写完就可以来看看成果啦
**批次转换Excel存档格式, 由xls转为xlsx xls格式是Excel2003及以前的Exc...
前情提要 前一篇与大家介绍了 Selenium 的基本运用,并在补充资料中给予了语法的资源。 开始之...
LAST Day 终於到了铁人赛的最後一天,过程中复习了不少的东西,对某些用法有了更加的认识,过程中...
在Kernel里面有一项功能,就是所谓的号志(semaphore)的功能,里面包括: 1.号志控制区...
APP 营运思考 了解开发 APP 目的,不要为了做 App 而做 确认开发需求 商业目标 开发成本...