Java正则表达式中的特殊构造
来源:互联网 发布:淘宝官方网址是多少 编辑:程序博客网 时间:2024/06/06 14:12
1、零宽断言
零宽即为不占用字符位置,用于表示字符之间的空隙。该空隙需要满足一定条件。
检测空隙之前的匹配条件为前向、后行、回顾断言(lookbehind assertion)。
检测空隙之后的匹配条件为后向、先行、前瞻断言(lookahead assertion)。
零宽断言要求所检测的匹配条件成立、存在时,称为正向、肯定性断言。
零宽断言要求所检测的匹配条件不成立、不存在时,称为负向、否定性断言。
注意:黑体为标准术语,其他的修饰词仅用于帮助理解,不建议使用,这是由一小撮英语不好的码农自创的术语。
(?=X) 肯定性前瞻断言
(?!X) 否定向前瞻断言
(?<=X) 肯定性回顾断言
(?<!X) 否定性回顾断言
零宽断言之后也可以加量词限定,表示零个至多个
2、非捕获组捕获组是指被保存起来的子表达式、子模式、可以在正则表达式中用\i引用的第i个捕获子串、可以在replaceAll等函数中用$i引用的第i个捕获子串、
可以用matcher对象的group(i)方法调用的第i个捕获子串。即"abc(de.?)fg"中的(de.?)。
非捕获组就是也作为一个整体,但是不被捕获,不能用上述方法引用。
一般而言,在不需要使用的情况下,应该避免捕获组。
(?:X) X作为一个整体,但不被捕获,不能被用于前向引用。
(?>X) X作为一个原子的、不可回溯的、占有型整体,但不被捕获。
3、用例
判断一个字符串中包含this,不包含that。
("^(?:(?!that).)*?this(?:(?!that).)*$")
需要测试"thathis"、"thisthat"。
0 0
- Java正则表达式中的特殊构造
- Java正则表达式中的特殊构造
- 正则表达式 特殊构造用法
- java 正则表达式 非捕获组(特殊构造) (转)
- java 正则表达式 特殊构造(非捕获)理解 (2)
- java正则表达式特殊构造(非捕获)
- Java中的正则表达式构造摘要
- 正则表达式中的特殊字符
- 正则表达式中的特殊字符
- 正则表达式中的特殊字符
- 正则表达式中的特殊字符
- 正则表达式中的特殊字符
- 正则表达式中的特殊字符
- 正则表达式中的特殊字符
- 正则表达式中的特殊字符
- 正则表达式中的特殊字符
- 正则表达式中的特殊字符
- 正则表达式中的特殊字符
- 日期处理jar
- 大话android之简单的参数传递
- javascript概念部分
- activiti uuid主键
- django 个人博客系统开发 - 数据库设计与django Model
- Java正则表达式中的特殊构造
- javascript编程部分
- mysql 在 centos 上的安装和使用简述
- 开始你的测试
- 【代码笔记】iOS-判断有无网络
- leetcode70:Climbing Stairs
- 线程和进程
- include()和require()是特殊的语言结构,在条件语句中使用必须将其放在语句组中
- HDU 1007 Quoit Design