15
回答
perl的正则表达式引起的思考

始终无法习惯Perl的正则表达式,为什么?总觉得它复杂,要记住很多东西,可能是我根本从来就没的打算去记住它吧,个人认为这种事物没有多少东西。我认为正则表达式应该有一种更智能的方法去替代。

再多说一点吧,对于一门语言,作为一个工具,我们往往希望是使用起来更加简单,语言的元素更紧合,更正交,那么这个要求的结果是语言本身的运行时环境会更复杂,前提是语言提供了同样的抽象级。我很不喜欢你拿C和C++相比。但是运行时环境变复杂往往不是我们想要的。事物都是这样的对立,不可能一切如意。如果要做一个选择呢?

我选择运行时更加复杂的,其实语言本身的紧和正交并不代表语言就更易于使用。比如Ada语言就是一个例子。不过我最终的选择还是将复杂留给运行时支持环境。让把错误更多的留给支持系统。

正则表达可不可以使用一种新的方式来逞现给使用者呢?其实都些乱想,不要被骂就好了。

举报
林希
发帖于5年前 15回/696阅
共有15个答案 最后回答: 5年前

举几个例子:

1、字符串匹配替换,程序员会使用正则表达式,码农只会if then else

2、复杂程序逻辑,程序员会用状态机、petri网、跳转表,码农只会用if then else 面向对象 继承 多态

3、网络交互的数据格式,程序员会用Json XML,码农只会抠字节定帧格式

计算机科学有着自己独特的风格和魅力,而不像计算机不是科学,软件工程不是工程这篇文章的作者自以为是的那样子。

--- 共有 2 条评论 ---
Y-QTCeif .. else 之类的是基本结构啊。你状态机还不是也得用。使用正则表达式无非是借用了一个现有的解析引擎罢了,实际上不还是得用条件判断…… 5年前 回复
init0前辈,请问状态机、petri网、跳转表是属于哪一块的知识,总能看到但苦于不能较为完整地学习,劳烦赐教,谢谢~ 5年前 回复
楼主认为哪种语言的正则表达式好?楼主不是特指perl的吧?应该是所有的正则表达式吧。感觉这个标题 容易引起误解。
--- 共有 1 条评论 ---
林希我指的是所有现在市面上的正则表达式语法 5年前 回复

引用来自“shol”的答案

举几个例子:

1、字符串匹配替换,程序员会使用正则表达式,码农只会if then else

2、复杂程序逻辑,程序员会用状态机、petri网、跳转表,码农只会用if then else 面向对象 继承 多态

3、网络交互的数据格式,程序员会用Json XML,码农只会抠字节定帧格式

计算机科学有着自己独特的风格和魅力,而不像计算机不是科学,软件工程不是工程这篇文章的作者自以为是的那样子。

1、字符串匹配替换,程序员会使用正则表达式,码农只会if then else

2、复杂程序逻辑,程序员会用状态机、petri网、跳转表,码农只会用if then else 面向对象 继承 多态

3、网络交互的数据格式,程序员会用Json XML,码农只会抠字节定帧格式

      我咋每条都想反对呢.........  我很想把 你的码农和程序员换个位置.  ps:  多态 和 状态机 是完全不冲突的东西. 
      PPS: 正则表达式的抽象方向是对的, 但语法可以更人性化, 我背过3遍正则语法, 现在依旧是只能记得最基本的. 这和我的工作环境有关, 我几乎不可能用上正则表达式. 10行if else的函数 就能解决的问题, 用正则属于装B + 犯罪.

--- 共有 10 条评论 ---
Lunar_Lin回复 @shol : 呵呵. 那就别说了. 哥真的穷. 在北京陪女人逛几次街, 胜读十年书啊. 5年前 回复
kajhsdjkah回复 @Lunar_Lin : 体会到了你的苦逼了,算了不说你了 5年前 回复
Lunar_Lin回复 @中山野鬼 : 呵呵,很了解, 经历过类似养家的日子,非常的苦逼,毫无尊严可言. 感触: 10个男人都未必能满足女人的欲望. 至于前面的回复, 话嘛, 开玩笑才有意思. 呵呵. 5年前 回复
Lunar_Lin回复 @shol : 全世界有1024个人,1000个都是配种的动物,你叫我怎么混. 装清高? 呵呵. 5年前 回复
中山野鬼回复 @Lunar_Lin : 哈。你肯定没养家。女人,一个就够了。如果再多一个,她两一联手,基本你就彻底被奴役了。。。且不谈多个家多个女人了。 5年前 回复

1、字符串匹配替换,程序员会使用正则表达式,码农只会if then else

懒惰使然, 如果if else 搞不定或者很繁琐, 自然会去用正则。 例如 你需要自动检索google, 并把结果弄成格式化的文档。

2、复杂程序逻辑,程序员会用状态机、petri网、跳转表,码农只会用if then else 面向对象 继承 多态

才专门看了一下状态机的定义。。  原来以前用的 状态 -- 动作---状态  的二维表 就是状态机啊。 释然。

3、网络交互的数据格式,程序员会用Json XML,码农只会抠字节定帧格式

先去查查网游、证券。。这些网络数据交互是啥格式再说哈.

顶部