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

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

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

24417 次点击
所在节点    程序员
170 条回复
youyaang
2019-03-04 19:23:40 +08:00
真香
xrui
2019-03-04 19:25:18 +08:00
我是在形式语言,讲到正则表达式的时候,才发现这两个同名的东西真的就是一个东西

可以说没有正则表达式就没有形式语言与自动机理论这一套,而没有 CFG 就没有高级语言编译器,也就没有高级语言了
lulinux
2019-03-04 19:27:28 +08:00
为了提高检索效率
grewer
2019-03-04 19:27:45 +08:00
是真滴好用
kxct
2019-03-04 19:31:55 +08:00
当你决定用正则表达式解决一个问题时,你就有两个问题了
bumz
2019-03-04 19:34:58 +08:00
好啊,那你别用正则表达式和写好的正则引擎,手写 DFA 好了
先手写一个判断一个数是不是 2147483647 的倍数的 DFA 练练手?
iAcn
2019-03-04 19:35:35 +08:00
正则表达式是个神奇的东西,每次都想着这次一定要学会,下次用的时候还是要去查。
bumz
2019-03-04 19:38:47 +08:00
@bumz #86 (不多,也就 2147483647 个状态和 4611686014132420609 个状态转移而已,相信楼主的实力,有限时间内一定能写完
linxu
2019-03-04 19:41:36 +08:00
这是一个技能。
flynaj
2019-03-04 19:45:39 +08:00
楼主又是一个小学毕业的吧,基础不好就是这样的。多看看基础性的东西。
littlewing
2019-03-04 19:47:52 +08:00
所以说你有啥更好的解决方案?
no1xsyzy
2019-03-04 19:50:06 +08:00
@zhuangzhuang1988 我去吃了个饭才想到你这 ex 是什么意思……
Powershell 就是 REPL 不灵,要是 M$ 能把 PS 的 REPL 能写到及格,爬虫就再也不是 Python 了。另外就是太想当 Shell 了,导致对编程很不友好,反而是对 one-liner 友好得多。
PS 也不是那么超前的东西,这些东西老早就有了。代码块来源于 Ruby (不清楚 Smalltalk 的情况);好像 Oberon 就是进程间通信传数据结构。
stackexplode
2019-03-04 19:50:10 +08:00
都有类似 regex101 这种好用的网站了,正则还不够好用吗,其他方案能比正则好用到哪里去?
与其抱怨还不如把基础打好呢
zhenhao
2019-03-04 19:51:23 +08:00
正则不熟悉会觉得很难很乱,花时间熟悉后就简单了,和五笔输入法学习一样
JamesMackerel
2019-03-04 19:57:46 +08:00
正则的本质是状态机,如果不用正则,写一堆 if else 或者 switch case 照样能把你烦死。
glfpes
2019-03-04 20:00:47 +08:00
正则表达式是一门魔法
CEBBCAT
2019-03-04 20:13:18 +08:00
乖乖,不用正则提取文本、格式验证那用啥?用 if else 啊?
fetich
2019-03-04 20:14:23 +08:00
没有正则,你会觉得更加反人类
no1xsyzy
2019-03-04 20:15:55 +08:00
另外,re.X 或者 re.VERBOSE,请
hzw94
2019-03-04 20:57:30 +08:00
正则用起来很爽啊.

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

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

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

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

© 2021 V2EX