世界上为什么会有正则表达式这么反人类的玩意儿?

2019-03-04 16:36:08 +08:00
 snoopy1024

如果不是必须用,尽量不用这玩意儿… 学也不想学,学了后又忘得快。 今天有个需求要写正则,吐槽一下…

23539 次点击
所在节点    程序员
170 条回复
SorcererXW
2019-03-04 18:22:52 +08:00
正则表达式好就好在有一大堆可以抄,比如手机号码、邮箱,写不来就上网上抄就好了,保证可用
如果没有正则表达,让菜鸟程序员手写代码验证手机号码、邮箱,可能出现地问题还要多
另外,正则语法相对简单,不会编程也能写,让非程序员也能进行定制
sunnyadamm
2019-03-04 18:24:52 +08:00
这东西读的时候各种吐槽,用的时候,嗯,真香
mon6912640
2019-03-04 18:25:45 +08:00
你再想想,没有正则,你来写个字符串匹配逻辑试试?
更不用说正则表达式是跨语言平台的了,不用正则表达式的话,同一个匹配规则,换了平台还得重新写一遍
lihuoqingfly
2019-03-04 18:25:54 +08:00
真香
ipwx
2019-03-04 18:26:42 +08:00
因为需要正则表达式的地方,你不用的话,写出来的程序更难读、更难维护。
across
2019-03-04 18:28:19 +08:00
这个东西用处很大···

唯一的问题就是你说的。当初我写的时候看了一下午的说明,看完了写好了,一个月后回来修改····

完了,完全看不懂自己写的啥了。
AngryPanda
2019-03-04 18:32:25 +08:00
懂了就不反人类了。英语也反人类😄
l00t
2019-03-04 18:33:14 +08:00
@mon6912640 #63 跨语言平台??几乎每个语言的正则实现都不一样,如何跨语言平台?
crazycen
2019-03-04 18:33:44 +08:00
解决一个问题,总会带来新的问题!
ichou
2019-03-04 18:34:07 +08:00
正则都不会写的话…… 你是怎么通过面试的
jimmyczm
2019-03-04 18:34:49 +08:00
我读别人的正则就很痛苦
casillasyi
2019-03-04 18:35:54 +08:00
很多人真的是乱喷。正则能解决问题,但不代表他好用。这种符号系统的表达方式本身就是反人类的。当年汇编的时代,有一部分人闷头把他当圣经学习,有人觉得他他太反人类,所以开发了高级语言。
cyspy
2019-03-04 18:37:32 +08:00
手改 csv 爽的要死
casillasyi
2019-03-04 18:43:22 +08:00
@mon6912640 残酷的是,每个平台你真的得重写一遍
bwangel
2019-03-04 18:56:54 +08:00
https://regexper.com/

希望对你有帮助。

另外对于这种难读的代码,建议多写单元测试。单元测试尽量功能简单,代码繁琐,每个 testcase 只测试一个东西,一个 testcase 代码量尽量不超过 15 行,阅读这段代码的人(很有可能是两个月的你)通过单元测试可以了解到你想干啥?

当然也可以写注释,但是注释很有可能在经过半年时间后,就与代码完全不同步了。
laodao1990
2019-03-04 18:58:22 +08:00
挺爽啊
不光写程序可以用,查日志查各种文本的时候也可以用啊
xiyiailoli
2019-03-04 19:07:17 +08:00
还好吧,只是读别人的正则,有时候真的脑仁疼
Raymon111111
2019-03-04 19:08:15 +08:00
因为方便
ymj123
2019-03-04 19:08:16 +08:00
是你的需求反人类吧?
reus
2019-03-04 19:21:12 +08:00
@casillasyi 那你“发明”一个高级语言来描述正则所表达的意思呗。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/540910

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX