早前推上有人说像 Markdown 这种简单的文档可以用正则表达式很轻易地解析,我完全不以为然,因为我自己用正规的递归下降解析写过,发现……挺 tricky 的。但是在《网站支持 Live Photo 图片展示》上发现我很久很久之前用过的 marked 这个 js 写的 Markdown 库竟然就是用的正则表达式实现的?

我低估了正则表达式的强大,也低估了作者们的能力。但是有句关于正则表达式的话我还记得很清楚:

Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems. (Source of the famous “Now you have two problems” quote)

很多人写的正则,是那种写的时候看得懂,事后就忘记。不然你看看下面这段装逼过度

1
R"((\w+)\s+([^\?\s]+(\?(\w+(=(\w+)?)?)?(&(\w+(=\w+)?))*))\s+(.*)\r?\n(([-\w]+\s*:\s*.*?\s*\r?\n)+)\r?\n)"

我只敢肯定这段代码是我给公司写的,语言是 C++,但是意义嘛……

但不管怎样,我最终还是放弃了marked,因为我不想在后端一直保留 nodejs,我是🐶党。

桃子的碎碎念 桃子 编辑