正则中的顺序环视和逆序环视
2015-12-17 11:39
309 查看
环视结构不匹配任何支付,只匹配文本中的特定位置。
肯定顺序环视:从左向右查看文本,尝试匹配子表达式,如果能够匹配则返回匹配成功信息。顺序环视使用「 (?=...) 来标识」,例如「 (?=\d) 」,它表示如果当前位置的右边字符是数字,则匹配成功。
肯定逆序环视:从右向左查看文本,试匹配子表达式,如果能够匹配则返回匹配成功信息。逆序环视使用「 (?<=...) 来标识」,例如「 (?<=\d) 」,它表示如果当前位置的左边字符是数字,则匹配成功。
环视不会"占用"字符位置的,可以理解为 『它占用的位置信息,而不是位置上的字符』
利用环视,解决数字中按位插入「,」 。
例如1234567 在 有些地方需要展示为:1,234,567
在java中可以使用这样的正则进行替换: "1234567".replace("(?<=\\d)(?=(\\d\\d\\d)+$)",",") 来实现
结果:
1,234,567
否定顺序环视: (?!..)子表达式不能匹配右侧的文本
否定逆序环视:(?<!...)子表达式不能匹配左侧的文本
肯定顺序环视:从左向右查看文本,尝试匹配子表达式,如果能够匹配则返回匹配成功信息。顺序环视使用「 (?=...) 来标识」,例如「 (?=\d) 」,它表示如果当前位置的右边字符是数字,则匹配成功。
肯定逆序环视:从右向左查看文本,试匹配子表达式,如果能够匹配则返回匹配成功信息。逆序环视使用「 (?<=...) 来标识」,例如「 (?<=\d) 」,它表示如果当前位置的左边字符是数字,则匹配成功。
环视不会"占用"字符位置的,可以理解为 『它占用的位置信息,而不是位置上的字符』
利用环视,解决数字中按位插入「,」 。
例如1234567 在 有些地方需要展示为:1,234,567
在java中可以使用这样的正则进行替换: "1234567".replace("(?<=\\d)(?=(\\d\\d\\d)+$)",",") 来实现
public static void regReplace() { String str="1234567"; str=str.replaceAll("(?<=\\d)(?=(\\d\\d\\d)+$)" ,","); System.out.println(str); }
结果:
1,234,567
否定顺序环视: (?!..)子表达式不能匹配右侧的文本
否定逆序环视:(?<!...)子表达式不能匹配左侧的文本
相关文章推荐
- android:ToolBar详解
- 做个程序员到底好不好
- 代码添加控件
- IOS 开发问题解决
- Linux如何查看进程、杀死进程、启动进程等常用命令
- error: field ‘?’ has incomplete type
- 安装Perl语言模块
- 设计模式——面向对象的三大特性
- 十句经典给你坚持的勇气
- Js数组的操作push,pop,shift,unshift等方法详细介绍
- iScroll5的入门
- JavaWeb开发基于Spring和mybatis框架(学习日志)
- NSAttributedString绘制多色镂空字符串
- [VBS] Compare values of two arrays
- 五年后,你的上司可能是机器人
- 程序员整理的各种不错的工具(转)
- 老李分享:HTTP协议之请求和响应
- ssh代理上国外任何网站,ssh教程
- CentOS 7.2安装Kubernetes 1.03
- 根据上边栏和下边栏的高度进行布局