之前就听说过正则的强大,一直想学习,但总是粗略的看一下就过,总是半桶水的状态,结果是学了就忘, 到真正要用到的时候就一脸懵逼了。最近开始重拾心态,决定好好学习,天天向上了。
看了正则表达式必知必会 的 PDF 书,感觉讲的书法基本都懂,但找不到东西好练手的,感觉不练手的话,估计不到 2 天又忘光了。
"实践是检验真理的唯一标准",只要动手练,才知道自己掌握得如何了。
so,望 V 友指点如何动手连,或者说说你们当时都是怎么学正则的
1
Tink 2016-03-03 16:19:45 +08:00
我觉得这货好难。。大概是我用的少
|
2
terence4444 2016-03-03 16:20:39 +08:00
把其中的代码含义理解一下,然后备个 Cheat Sheet ,等用的时候再对照即可。
|
3
imn1 2016-03-03 16:26:23 +08:00
浏览器找个支持正则搜索的扩展取代内置的搜索,经常用就好了
|
4
Strikeactor 2016-03-03 16:28:57 +08:00 4
http://regex.alf.nu/ 专门用来练手的
|
5
YuJianrong 2016-03-03 16:30:15 +08:00
虽然自己有在用,不过我还是想知道这东西主要有什么用处的?
我自己感觉我学的那部分(就是最常见的正则语法,没有 lookaround 什么的)简单得简直不用学,而且也没多大用处,很多时候还是要代码处理字符串。 |
6
v1024 2016-03-03 17:09:13 +08:00 2
|
7
florije 2016-03-03 17:15:14 +08:00
这么巧也在学习正则,分享下我的学习方法,正巧是在熟练爬虫的过程中想到正则的高大上,所以就可以不用 bs4 或者框架提供的方法,而是自己手写正则匹配,已经练习了 4-5 个网站了,感觉顺手多了,实际解决问题中用正则比为了学而学要牢靠一些吧。
|
8
yeyeye 2016-03-03 17:19:23 +08:00
楼主你好,学正则其实是不难的,难的是改正则,改别人写好了的正则……
|
9
GPU 2016-03-03 17:33:39 +08:00
主要是我看了不下 3 次的正则教学 ,基本上每一次再用我都是要再查一次。
因为不是常用啊 。 |
10
zerofzt 2016-03-03 17:33:49 +08:00
8 楼正解
话说 linux 的流处理的正则跟 java 和 python 这类的感觉好像有点差别? |
11
liberize 2016-03-03 17:35:07 +08:00
@YuJianrong
我觉得还是相当有用的,我经常用 Sublime Text 里面的正则查找和替换,另外折腾爬虫、机器人啥的也经常用。 随便举几个例子, 1. 前几天从 SubHD 下一个字幕文件,里面字幕经常有一些换行,我需要把这些这些换行去掉: 87 00:02:55,156 --> 00:02:56,289 The items on the second floor 88 00:02:56,291 --> 00:02:57,557 have to be more expensive 然后就在 Sublime Text 里面随手用正则替换掉了,把 (?<!\d)\n(?![\n\d]) 替换为空 2. 昨天整了个机器人,需要从 <script> 标签里提取跳转地址,然后也用了正则,查找 setTimeout\("top\.location\.href = '(.*?)';", (\d+)\); 并提取 group(1),还有一个需要从邮件里提取 pass code ,用了 Secret Code - (\w+)\r\n 提取 group(1) 3. 我 GitHub 上有一个 alfred 查词扩展,解析系统词典,之前不知道可以用私有 api 得到 html 格式的释义,就用正则去处理纯文本释义,相当复杂,简直要吐了,不过最后结果还可以 |
12
sennes 2016-03-03 18:40:02 +08:00
分享一下我的一个书签:http://regex.alf.nu/ 你就当做游戏练练手吧
|
13
lotem 2016-03-03 18:42:05 +08:00
模糊查詢,批量替換,非常好用。
又有俺巧用正則製作輸入法的獨門絕活: https://github.com/rime/home/wiki/SpellingAlgebra |
14
YuJianrong 2016-03-03 20:02:04 +08:00
@liberize 1. 编辑器下使用感觉不算在编程里面。虽然我也常用 vim 的扩展正则做替换(很巧也处理过字幕换行),不过感觉和程序里不一样。
2. 程序里使用的话,就比如上面 Script 标签内容的处理,对于移植格式的文本倒有点用(比如阁下的例子),但复杂一点的处理,还是得上专门的方法( XML 要 parse 成 dom , JS 可以 esprima 编译成 ast ),用正则处理感觉过于 tricky ,自己都很难信任这段代码能在所有场景下正常工作(就像阁下最后一个例子),这种情形我就很不喜欢写正则了。 所以我写的正则都是比较简单的那种,不会用正则处理大量复杂的文本。 |
15
yuedingwangji OP 太谢谢各位了 !
|
16
digimoon 2016-03-03 23:49:07 +08:00
有没有图形化排列条件什么的然后生成正则式子的软件?
|
17
zhangbohun 2016-03-04 00:05:56 +08:00
|
18
Strikeactor 2016-03-04 00:49:30 +08:00
|
19
shiny 2016-03-04 01:13:20 +08:00
写个模板引擎,并且坚持改 bug
|