`
phoenix520
  • 浏览: 142267 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用正则表达式按位数拆分数字

阅读更多

看下面一段代码:

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]。

 

分享到:
评论

相关推荐

    JS中验证整数和小数的正则表达式

    标题和描述提到的主题是关于JavaScript中如何使用正则表达式来验证整数和小数的有效性。在编程和数据处理中,确保输入值符合预期的格式是一种常见的需求,这可以通过正则表达式来实现。正则表达式是一种特殊字符的...

    使用Ruby re模块创建复杂的正则表达式

    如果性能是一个关键考量因素,可以在构建完成后,将Re对象转换为RubyRegexp对象来使用,这样做可以确保性能与使用原生正则表达式无异。 总之,Ruby的Re模块是处理复杂正则表达式的一个有力工具。它通过简化正则...

    从身份证提取出生年月、性别

    可以使用`MOD`函数配合`RIGHT`和`LEFT`函数来判断最后几位数字的奇偶性。例如: ```excel =IF(OR(LEN(B2)={15,18}), IF(MOD(RIGHT(LEFT(B2,17)), 2), "男", "女"), "") ``` 或者简化为: ```excel =IF(MOD...

    人民币转换程序 大小写转换

    4. **正则表达式**:利用正则表达式匹配数字和小数点,然后用预定义的模式进行替换。 5. **自定义类**:创建一个类,包含处理数字和单位的方法,提供友好的API供用户调用。 在实际开发中,为了提高用户体验,程序...

    javascript格式化数字

    2. **插入千位分隔符**:如果`formatInt`中包含逗号(`,`),则会计算每组数字的长度,并利用正则表达式在适当位置插入分隔符。 #### 实际应用示例 1. `alert(formatNumber(0,''));` 输出为空字符串,这是因为未...

    Bomb556解题思路1

    这一步可能需要使用正则表达式或者手动拆分字符串来提取整数和字符。关键在于正确解析输入,确保字符不被误识别为数字的一部分。 **Phase 4:递归搜索** 第四阶段引入了递归,我们需要锁定0-F中的一个数,并通过...

    前端大厂最新面试题-backtracking.docx

    本资源收录了前端大厂的最新面试题,涵盖了回溯算法、正则表达式匹配、解数独、最短特异单词缩写、通配符匹配、N皇后、括号生成、电话号码的字母组合、子集、单词接龙 II、组合总和、单词搜索、字母切换、累加数、...

    关于js datetime的那点事.docx

    `isTime()`函数使用正则表达式验证小时、分钟和秒的格式,而`strDateTime()`函数则用于检查短日期和长时间格式,确保日期和时间的各个部分在有效范围内。 总结来说,JavaScript中的日期处理涉及到`Date`对象的构造...

    C#编程经验技巧宝典

    122 <br>0206 如何使用正则表达式验证一年的12个月份 123 <br>0207 如何使用正则表达式验证一个月的31天 123 <br>0208 如何使用正则表达式验证数字输入 123 <br>0209 如何使用正则表达式验证密码...

    javascript日期对象格式化为字符串的实现方法

    首先,我们要理解这个格式化方案的基本原理:通过正则表达式匹配日期模板中的日期元素(如`yyyy`,`MM`,`dd`)和分隔符,并将这些元素拆分成数组。然后,用实际的日期和时间值替换这些元素,从而构建出符合指定格式...

    js(非金额)把阿拉伯数字转成中文大写

    - **输入验证**:通过正则表达式检查输入是否合法。 - **数字拆分**:将输入的数字转换为字符串后,去掉前导0,并分割成整数部分和小数部分。 - **逐位转换**:从最高位到最低位逐个转换数字,并根据位数添加相应的...

    php cookbook

    - **知识点概述**:介绍了如何使用 `split()` 和正则表达式来拆分字符串。 - **详细内容**:`split()` 函数使用正则表达式来分割字符串,并且提供了更多的灵活性。例如,可以使用正则表达式模式来匹配特定的分隔符。...

    winform C#人民币大小写金额转换程序

    实现这一功能,开发者可能会使用C#的字符串处理函数、正则表达式进行输入验证,以及自定义转换算法。在WinForm中,利用控件事件(如Button的Click事件)驱动程序逻辑,通过Text属性读写用户输入和输出。 在提供的...

    vbs常用函数公式及技巧搜集

    - `RegExp`: 正则表达式对象,用于文本匹配和替换。 9. **身份证号处理**: - 身份证号码验证通常涉及到校验码计算,可以使用数学公式来检查身份证号的有效性。 - `Split()`: 用于将身份证号拆分成不同的部分,...

    JAVA面试笔试题汇总-7

    为了更好地实现货币格式化,还可以考虑使用国际化库(如`java.util.Locale`)来支持不同的地区设置,以及利用正则表达式进行更精细的格式匹配和验证。此外,还可以通过自定义类来封装货币格式化的逻辑,提高代码的...

Global site tag (gtag.js) - Google Analytics