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

如果不是必须用,尽量不用这玩意儿… 学也不想学,学了后又忘得快。 今天有个需求要写正则,吐槽一下…
1 Patrick95 Mar 4, 2019 写正则还好,读正则才是痛苦的事。 正则表达式是可写不可读的。 |
2 nfroot Mar 4, 2019 不是反人类啊,是反程序员。。。最反的是重构程序员 |
3 misaka19000 Mar 4, 2019 正则本来就应该尽量避免使用 |
4 lihongjie0209 Mar 4, 2019 要不你自己写 if else, 要不用正则表达式, 它帮你生成 if else。 |
5 maemual Mar 4, 2019 写的人爽了,后面的人痛苦 |
6 RIcter Mar 4, 2019 啊,我感觉挺好用的啊,不然你怎么处理模式化数据? |
7 DoveAz Mar 4, 2019 要是没有正则,邮箱手机号啥的验证起来更麻烦了 |
8 syahd Mar 4, 2019 via Android 你就假装没有他,然后再用别的方法实现同样的功能呗,又没有人逼着你用。 |
9 araraloren Mar 4, 2019 了解一下 Perl 6 的 grammar 么。。 |
10 icered Mar 4, 2019 有啥更好的能取代正则的方法吗,接触少,感觉正则用起来挺灵活。。(主要是组合方式多) |
11 torment5524 Mar 4, 2019 用起来好用,就是场景毕竟固定,不是经常写,每次写都会忘记怎么写。。。。需要先查资料 |
12 wanglufei Mar 4, 2019 via Android 每次用都要现查 api,没必要记 |
13 ooonme Mar 4, 2019 正则造福一方文本数据工程师 |
14 tvallday Mar 4, 2019 via Android 这个在特定场景,可以省很多时间和金钱。 |
15 jdhao Mar 4, 2019 via Android 确实经常忘!上周还专门总结了一下 sublime text 里面的正则表达式常用语法,https://jdhao.github.io/2019/02/28/sublime_text_regex_cheat_sheet/ |
16 wenzhoou Mar 4, 2019 via Android |
17 wenzhoou Mar 4, 2019 via Android 可以帮你解析正则表达式, 无废话。 |
18 hellowes Mar 4, 2019 菜鸡只会喷技术,有这力气不去看教程 |
19 U7Q5tLAex2FI0o0g Mar 4, 2019 用的不多,要用就查手册 |
20 bilibilifi Mar 4, 2019 感觉比起写等价的自动机还是正则表达式更方便吧 |
![]() | 21 jydeng Mar 4, 2019 因为正则要解决的问题很反人类 |
22 ochatokori Mar 4, 2019 via Android 刚开始接触整夜的时候我也是这样想的 真香 毕竟处理文本真的很方便 |
23 gouchaoer2 Mar 4, 2019 如果没有正则你写的东西读起来会更加困难 |
24 lixuedong Mar 4, 2019 我倒觉得正则表达式很好用 没有正则得浪费多少精力 |
25 May725 Mar 4, 2019 真香 |
26 wxsm Mar 4, 2019 世界上为什么会有正则表达式这么反人类的玩意儿? 真香。 |
27 l00t Mar 4, 2019 我文本编辑器里查找替换都用正则表达式。没了正则表达式那操作起来得多麻烦啊。 |
28 zhang1215 Mar 4, 2019 真香警告 |
29 yaodd Mar 4, 2019 用完之后会说,世界上竟然有正则表达式这么神奇的东西! |
30 reus Mar 4, 2019 你可以自己写一堆 if 啊,又没人阻止你。说不好读的,你那一堆 if 就好读了? 再说了,难道你不会加注释吗? 无能就不要开口。 |
31 Cbdy Mar 4, 2019 via Android 没有掌握正确的学习方法的表现 |
32 yaodd Mar 4, 2019 反正是工具而已,普通人偶尔用下用完就丢也没多大关系,经常用到的人自己会很熟练 |
33 vus520 Mar 4, 2019 就那么几个点,能比五笔复杂? |
34 akira Mar 4, 2019 数学才是反人类的 |
35 boris1993 Mar 4, 2019 via Android 我写正则的时候,先到 playground 里一边测一边写,放代码里的时候肯定注释清楚匹配哪些数据并给出对应示例,然后就放在那再也不动 |
36 ifaii Mar 4, 2019 via iPhone 写还可以 读就很痛苦 |
37 Tonni Mar 4, 2019 我们团队规定写正则的时候必须要用注视描述清楚,最好贴上 https://regex101.com 上面的测试 case。 |
38 imdong Mar 4, 2019 正则表达式是一种工具啊,而且熟悉以后写正则的过程其实可以很享受。 当时,正则表达式是不可读的,但是有一堆工具可以辅助啊。 所以,我感觉正则表达式在很多方面是解决问题的利器。 只是,只是要看你怎么利用这个了而已。 |
39 ballshapesdsd Mar 4, 2019 真香警告 |
40 janxin Mar 4, 2019 正则比较讨厌的是看别人写的正则 2333 |
41 lhx2008 Mar 4, 2019 via Android 如果是结构化文档不需要正则,其实开发中用到的也不多吧 |
42 msg7086 Mar 4, 2019 正则应该是 Automata theory 的演化。这货还演化出了编译原理这玩意儿。所以没有正则的话,连编程语言也就一起没了。 |
43 annielong Mar 4, 2019 写的时候真痛苦,用起来真香 |
44 masker Mar 4, 2019 via Android 还行啊…基本的无非就几个元字符,再深一点就环视之类的 |
45 saulshao Mar 4, 2019 正则表达式其实是提供给程序用的东西,并不是给人读的。 因此让你写你当然痛苦,写出一串正则表达式,跟你按照相同的逻辑写一大堆 if-else 消耗的精力是完全一致的。 只是读你自己写的结果,更加痛苦...... 但是程序员不就是干这个的么? |
46 0ZXYDDu796nVCFxq Mar 4, 2019 via Android 我们最近有一项工作是把几千条正则重写 因为新引擎支持更高效的规则,部分正则用新规则,部分正则简化成原正则的超集 |
47 zhuangzhuang1988 Mar 4, 2019 因为 linux 的狗屁哲学 一切皆文本 而不是 windows 的 能结构化处理的结构化 ex: linux 一堆破 shell vs powershell |
48 lihongjie0209 Mar 4, 2019 @zhuangzhuang1988 还真有人用 powershell 啊 |
49 tux Mar 4, 2019 因为不搞复杂,码狗工资就不会这么高了,前辈们的一片苦心 |
50 tiaod Mar 4, 2019 不用正则表达式用啥? if else 写一大串? |
51 12101111 Mar 4, 2019 via Android 楼主要不看看 形式语言与自动机 ? |
52 povvoq Mar 4, 2019 via Android ifelse 不能增加你的工资 reg exp 也不行,但可以提高你的竞争力 |
53 turingcat Mar 4, 2019 正则一时爽,维护火葬场! |
54 kenX Mar 4, 2019 分享一个正则工具 |
55 kenX Mar 4, 2019 |
56 zhuangzhuang1988 Mar 4, 2019 @lihongjie0209 对啊, 微软的宣传部门真应该以死谢罪,东西超前那么多 |
58 fyyz Mar 4, 2019 没人逼你用啊,你自己写代码解析字符串吧。 |
59 weixiangzhe Mar 4, 2019 via iPhone 正则就是 读起来难 写还好 |
60 herozzm Mar 4, 2019 via iPhone 这个是宝贝疙瘩 |
61 SorcererXW Mar 4, 2019 正则表达式好就好在有一大堆可以抄,比如手机号码、邮箱,写不来就上网上抄就好了,保证可用 如果没有正则表达,让菜鸟程序员手写代码验证手机号码、邮箱,可能出现地问题还要多 另外,正则语法相对简单,不会编程也能写,让非程序员也能进行定制 |
62 sunnyadamm Mar 4, 2019 via Android 这东西读的时候各种吐槽,用的时候,嗯,真香 |
63 mon6912640 Mar 4, 2019 via Android 你再想想,没有正则,你来写个字符串匹配逻辑试试? 更不用说正则表达式是跨语言平台的了,不用正则表达式的话,同一个匹配规则,换了平台还得重新写一遍 |
64 lihuoqingfly Mar 4, 2019 真香 |
65 ipwx Mar 4, 2019 因为需要正则表达式的地方,你不用的话,写出来的程序更难读、更难维护。 |
66 across Mar 4, 2019 这个东西用处很大 唯一的问题就是你说的。当初我写的时候看了一下午的说明,看完了写好了,一个月后回来修改 完了,完全看不懂自己写的啥了。 |
67 AngryPanda Mar 4, 2019 via Android 懂了就不反人类了。英语也反人类 |
68 l00t Mar 4, 2019 @mon6912640 #63 跨语言平台??几乎每个语言的正则实现都不一样,如何跨语言平台? |
69 crazycen Mar 4, 2019 解决一个问题,总会带来新的问题! |
70 ichou Mar 4, 2019 正则都不会写的话…… 你是怎么通过面试的 |
71 jimmyczm Mar 4, 2019 我读别人的正则就很痛苦 |
72 casillasyi Mar 4, 2019 via Android 很多人真的是乱喷。正则能解决问题,但不代表他好用。这种符号系统的表达方式本身就是反人类的。当年汇编的时代,有一部分人闷头把他当圣经学习,有人觉得他他太反人类,所以开发了高级语言。 |
73 cyspy Mar 4, 2019 手改 csv 爽的要死 |
74 casillasyi Mar 4, 2019 @mon6912640 残酷的是,每个平台你真的得重写一遍 |
75 bwangel Mar 4, 2019 https://regexper.com/ 希望对你有帮助。 另外对于这种难读的代码,建议多写单元测试。单元测试尽量功能简单,代码繁琐,每个 testcase 只测试一个东西,一个 testcase 代码量尽量不超过 15 行,阅读这段代码的人(很有可能是两个月的你)通过单元测试可以了解到你想干啥? 当然也可以写注释,但是注释很有可能在经过半年时间后,就与代码完全不同步了。 |
76 laodao1990 Mar 4, 2019 挺爽啊 不光写程序可以用,查日志查各种文本的时候也可以用啊 |
77 xiyiailoli Mar 4, 2019 via Android 还好吧,只是读别人的正则,有时候真的脑仁疼 |
78 Raymon111111 Mar 4, 2019 因为方便 |
79 ymj123 Mar 4, 2019 via Android 是你的需求反人类吧? |
80 reus Mar 4, 2019 @casillasyi 那你“发明”一个高级语言来描述正则所表达的意思呗。 |
81 youyaang Mar 4, 2019 真香 |
82 xrui Mar 4, 2019 via Android 我是在形式语言,讲到正则表达式的时候,才发现这两个同名的东西真的就是一个东西 可以说没有正则表达式就没有形式语言与自动机理论这一套,而没有 CFG 就没有高级语言编译器,也就没有高级语言了 |
83 lulinux Mar 4, 2019 via Android 为了提高检索效率 |
84 grewer Mar 4, 2019 是真滴好用 |
85 kxct Mar 4, 2019 当你决定用正则表达式解决一个问题时,你就有两个问题了 |
86 bumz Mar 4, 2019 好啊,那你别用正则表达式和写好的正则引擎,手写 DFA 好了 先手写一个判断一个数是不是 2147483647 的倍数的 DFA 练练手? |
87 iAcn Mar 4, 2019 via Android 正则表达式是个神奇的东西,每次都想着这次一定要学会,下次用的时候还是要去查。 |
89 linxu Mar 4, 2019 via Android 这是一个技能。 |
90 flynaj Mar 4, 2019 via Android 楼主又是一个小学毕业的吧,基础不好就是这样的。多看看基础性东西。 |
91 littlewing Mar 4, 2019 所以说你有啥更好的解决方案? |
92 no1xsyzy Mar 4, 2019 @zhuangzhuang1988 我去吃了个饭才想到你这 ex 是什么意思…… Powershell 就是 REPL 不灵,要是 M$ 能把 PS 的 REPL 能写到及格,爬虫就再也不是 Python 了。另外就是太想当 Shell 了,导致对编程很不友好,反而是对 one-liner 友好得多。 PS 也不是那么超前的东西,这些东西老早就有了。代码块来源于 Ruby (不清楚 Smalltalk 的情况);好像 Oberon 就是进程间通信传数据结构。 |
93 stackexplode Mar 4, 2019 都有类似 regex101 这种好用的网站了,正则还不够好用吗,其他方案能比正则好用到哪里去? 与其抱怨还不如把基础打好呢 |
94 zhenhao Mar 4, 2019 正则不熟悉会觉得很难很乱,花时间熟悉后就简单了,和五笔输入法学习一样 |
95 JamesMackerel Mar 4, 2019 via iPhone 正则的本质是状态机,如果不用正则,写一堆 if else 或者 switch case 照样能把你烦死。 |
96 glfpes Mar 4, 2019 正则表达式是一门魔法 |
97 CEBBCAT Mar 4, 2019 via Android 乖乖,不用正则提取文本、格式验证那用啥?用 if else 啊? |
98 fetich Mar 4, 2019 没有正则,你会觉得更加反人类 |
99 no1xsyzy Mar 4, 2019 另外,re.X 或者 re.VERBOSE,请 |
100 hzw94 Mar 4, 2019 正则用起来很爽啊. |