事情缘起于一次在StackOverflow的 提问 。
之前使用Rebol的 PARSE 方言,只是简单用来解析字符串,比如根据特定的标记符号来定位位置:
page: to-string read http://www.ituring.com.cn/ parse page [thru "<title>" copy title to "</title>"] print title "图灵社区"
PARSE内置了很多 关键字 ,可以应对大多数常见的情形。对于一些比较复杂的情形,比如问题中提到的那种,使用DSL则会自然和简洁很多。
PARSE方言拥有强大的构建DSL的能力,但是很惭愧,之前并不知道确切的用法。 这个答案 则让我眼前一亮,瞬间感到思维像是升了一次级,从以前只会简单的解析字符串,到以后可以使用DSL解析资料,可以说是鸟枪换炮了,哦不,应该是弹弓换炮才对!;-)