ruby正则的named capture

08 Jul 2009

之前用python re的时候,特别喜欢用named capture,主要是可读性好太多了,一个正则表达式写出来都不用再加注释了。

可是ruby1.8并不支持,每次用$1, $2的时候都觉得很ugly,幸好ruby1.9开始支持named capture了。看看example:

result = %r{(?\w+)\s(?\w+)}.match("Richard Huang") result.lastname

=> "Richard"

result.firstname

=> "Huang"通过named capture,别人读你的正则表达式时,也能够轻松地理解你的意图

Tags 


blog comments powered by Disqus