新足迹

 找回密码
 注册

精华好帖回顾

· 公司近全员确诊新冠,分享真实故事。。总结建议更新202 (2021-12-31) 平安2020 · Tokyo Escape (2011-3-13) athleticfrog
· 找到工作,来交作业啦! (2010-9-5) nikyxin · LG的生日蛋糕,香芋泥,榴莲酥 (2008-4-10) ivy_cn
Advertisement
Advertisement
查看: 4013|回复: 11

[IT] Regular Expression这玩艺儿比想像的难啊。 [复制链接]

发表于 2015-12-28 10:10 |显示全部楼层
此文章由 Keith 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Keith 所有!转贴必须注明作者、出处和本声明,并保持内容完整
哥十几年码工了。早就听人说过,不懂Regular Expression不能算真正的码工。可一直没机会接触Regular Expression。最近有空,就自学一下。首先当然是要有好的资料。发现了一本好书:O'Reilly出版的《Regular Expressions Cookbook》2nd Edition,By: Jan Goyvaerts; Steven Levithan (2012)
接着就是学技术的老套路了,先把好书过一遍。刚开始觉得就那么几个特殊意义的字符,以为能有啥难的?一深入才发现,里面充满了微言大义啊。读到第17个例子:match 逗号分隔的三个单词“one”,“two”,“three"的任意重复排列:

\b(??one)|(two)|(three))(?:,|\b)){3,}(?(1)|(?!))(?(2)|(?!))(?(3)|(?!))

哥终于有那么一点点崩溃了。是哥老了,还是这玩艺儿本来就难?
祖国就在你的脚下....
Advertisement
Advertisement

发表于 2015-12-28 10:55 |显示全部楼层
此文章由 fly02 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 fly02 所有!转贴必须注明作者、出处和本声明,并保持内容完整
无他,背熟而已。
你需要的是一个好的re editor可以测试结果的。
加油。
不过,其实你真的不一定要学习的。有用就上网查查就行了。

评分

参与人数 1积分 +4 收起 理由
Keith + 4 感谢分享

查看全部评分

发表于 2015-12-28 11:00 |显示全部楼层
此文章由 iamamouse 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 iamamouse 所有!转贴必须注明作者、出处和本声明,并保持内容完整
机器能处理的从逻辑上不算难,但层层叠加可以做得很繁,所以人眼看经常会看着看着忘了

评分

参与人数 1积分 +4 收起 理由
Keith + 4 感谢分享

查看全部评分

头像被屏蔽

禁止发言

发表于 2015-12-28 11:21 来自手机 |显示全部楼层
此文章由 闲云散人 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 闲云散人 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个要用的时候去查下就可以了

评分

参与人数 1积分 +4 收起 理由
Keith + 4 感谢分享

查看全部评分

发表于 2015-12-28 12:06 |显示全部楼层
此文章由 oomomoko 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 oomomoko 所有!转贴必须注明作者、出处和本声明,并保持内容完整
超难

评分

参与人数 1积分 +4 收起 理由
Keith + 4 感谢分享

查看全部评分

发表于 2015-12-28 12:24 |显示全部楼层
此文章由 melmonash 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 melmonash 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2015-12-28 14:05 |显示全部楼层
此文章由 hotortwo 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hotortwo 所有!转贴必须注明作者、出处和本声明,并保持内容完整
居然有码工不会RE的???

发表于 2015-12-28 17:34 |显示全部楼层
此文章由 xxmplus 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 xxmplus 所有!转贴必须注明作者、出处和本声明,并保持内容完整
hotortwo 发表于 2015-12-28 14:05
居然有码工不会RE的???

先定义怎么才叫“会”

发表于 2015-12-28 17:40 |显示全部楼层
此文章由 老衲 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 老衲 所有!转贴必须注明作者、出处和本声明,并保持内容完整
那叫懒,不叫难

发表于 2015-12-28 21:54 |显示全部楼层
此文章由 浮云马 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 浮云马 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 浮云马 于 2015-12-30 20:28 编辑

很难,这玩意等效于NFA(non-deterministic finite automata),NFA基本上能表达出任何规则语言

评分

参与人数 1积分 +4 收起 理由
Keith + 4 受教了!

查看全部评分

发表于 2015-12-28 21:56 |显示全部楼层
此文章由 浮云马 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 浮云马 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Advertisement
Advertisement

发表于 2015-12-30 17:01 |显示全部楼层
此文章由 fevin86 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 fevin86 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Regex有一点一定要吐槽的是.... 在各个语言中都有所不同。每天vim, ruby, bash切换来切换去,有种精神分裂的感觉。。。。

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部