2008-03-25
按位数拆分数字
看下面一段代码:
s='12345678' s.gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1,")
返回的结果是12,345,678
正则表达式中,?=为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,?!为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串,这个正则表达式的意思为:匹配以一个数字开头,接着跟上N组3个数字,但不以一个数字结尾。
?=和?!为预查,不消耗字符串,发现匹配后立即开始下一次搜索,而不是从包含预查的字符之后开始。
gsub!和scan一样,从字符串的0位开始扫描匹配正则表达式,所以当扫描到1位时,出现第一个匹配的字符串为2345678,返回[2,678],接着向后扫描到4位时,出现第二个匹配的字符串为5678,返回[5,678]。
- 16:24
- 浏览 (105)
- 评论 (0)
- 分类: Regular Expressions
- 相关推荐
发表评论
- 浏览: 1097 次
- 性别:

- 来自: 杭州

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
解决MySQL不允许从远程访 ...
SQL语句后面加了'WITH GRANT OPTION;'没有?我按照这个方法是 ...
-- by phoenix520 -
解决MySQL不允许从远程访 ...
你好: 按照悄说的方法,我用: grant all PRIV ...
-- by haopeng_haopeng






评论排行榜