非捕获组规则
小括号后跟问号的都为非捕获组 (?),不能用$1获取。
(?=X ) 零宽度正先行断言。仅当子表达式 X 在 此位置的右侧匹配时才继续匹配。例如,\w+(?=\d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。
(?!X) 零宽度负先行断言。仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,\w+(?!\d) 与后不跟数字的单词匹配,而不与该数字匹配。
(?<=X) 零宽度正后发断言。仅当子表达式 X 在 此位置的左侧匹配时才继续匹配。例如,(?<=19)99 与跟在 19 后面的 99 的实例匹配。此构造不会回溯。
(?<!X) 零宽度负后发断言。仅当子表达式 X 不在此位置的左侧匹配时才继续匹配。例如,(?<!19)99 与不跟在 19 后面的 99 的实例匹配
以上为边界时不能被正则获取,即matcher.group()不打印X
X为正则表达式
(?:X)和(?>X)不能被$1获取,都可以通过matcher.group()打印出来X。
(?:X)与(?>X)的区别在于(?>X)是不回溯的。例如被匹配的字符串为abcm
当表达式为a(?:b|bc)m是可以匹配的,而当表达式是a(?>b|bc)m时是不能匹配的,因为当后者匹配到b时,由于已经匹配,就跳出了非捕获组,而不再次对组内的字符进行匹配。可以加快速度。
(?idmsux-idmsux) Nothing,但是将匹配标志由 on 转为 off。比如:表达式 (?i)abc(?-i)def 这时,(?i) 打开不区分大小写开关,abc 匹配
idmsux说明如下:
‐i CASE_INSENSITIVE :US-ASCII 字符集不区分大小写。(?i)
‐d UNIX_LINES : 打开UNIX换行符
‐m MULTILINE :多行模式(?m)
UNIX下换行为\n
WINDOWS下换行为\r\n(?s)
‐u UNICODE_CASE : Unicode 不区分大小写。(?u)
‐x COMMENTS :可以在pattern里面使用注解,忽略pattern里面的whitespace,以及"#"一直到结尾(#后面为注解)。(?x)例如(?x)abc#asfsdadsa可以匹配字符串abc
(?idmsux-idmsux:X) X,作为带有给定标志 on - off 的非捕获组。与上面的类似,上面的表达式,可以改写成为:(?i:abc)def,或者 (?i)abc(?-i:def)
zhxy
参考来源:http://extjs2.iteye.com/blog/394128
http://java.chinaitlab.com/base/786394.html
分享到:
相关推荐
以上列举了一些常见的正则表达式应用场景及其匹配规则,可以帮助开发者更好地理解和掌握Java正则表达式的使用技巧。通过这些示例,我们可以看到正则表达式在实际开发中的强大作用,并且能够灵活应用于各种复杂的字符...
在Java编程语言中,正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。在"java 银行卡 验证 正则表达式使用"这个主题中,我们将深入探讨如何利用正则表达式进行银行卡、手机号码和邮箱以及URL地址的...
在“java笔记之正则表达式”这篇笔记中,作者深入探讨了正则表达式的基本概念、操作方法以及在Java中的应用。 首先,正则表达式(Regular Expression)是一组符合特定规则的字符序列,主要用于字符串的查找、匹配、...
在Java中,正则表达式主要涉及到`java.lang.String`、`java.util.regex.Pattern`和`java.util.regex.Matcher`这三个类。下面我们将深入探讨这些知识点。 1. **基本概念与用途** - 正则表达式(Regular Expression...
### JAVA经典教材笔记知识点梳理 #### 第一章:JAVA概述及开发环境搭建 - **Java学习概述** - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA...
- **命名规则**:应符合Java语法规范,不能使用关键字。 - **驼峰命名法**:类名和方法名使用此命名方式。 #### 8. 变量 - **声明**:指定变量的数据类型和名称。 - **初始化**:赋予变量一个初始值。 - **作用域**...
《深入理解Java多线程、反射、泛型与正则表达式》 在Java编程领域,多线程、反射、泛型以及正则表达式是四个至关重要的概念,它们为开发者提供了强大的工具,使得程序更加高效、灵活且可维护。这份学习资料包括了...
### 毕向东_Java基础课堂笔记知识点梳理 #### 第一章 编程基础 - **Java的特性和优势** - **简单性**:Java的设计使得语法清晰、简洁,易于学习和理解。 - **面向对象**:支持封装、继承、多态等面向对象编程...
### JAVA笔记要点解析 #### JAVASE概述与基础概念 - **数组与数组拷贝**: - 数组是固定大小的数据结构,用于存储同种类型的数据元素。 - `java.lang.System`类中提供了静态方法`arraycopy`用于数组拷贝。此方法...
《毕向东java笔记》是一份详尽的Java学习资源,适合初学者使用。笔记涵盖了Java编程的基础到进阶内容,包括源代码示例,有助于理解与实践。以下是笔记中涉及的主要知识点: 1. **Java特性与优势**: - **简单性**...
根据给定的文件信息,以下是对“传智播客Java_SE基础毕向东老师全程笔记”的详细知识点总结: ### 第一章:编程基础 1. **Java的特性和优势**: - **简单性**:Java设计简洁,易于理解和学习。 - **面向对象**:...
将已知字符串的符合一定规则(指定正则)的子字符串取出(步骤笔记)
### 传智播客Java SE基础毕向东老师全程笔记知识点概览 #### 第一章:编程基础 **Java的特性和优势:** - **简单性:** Java的设计初衷是为了简化编程,减少编码负担。 - **面向对象:** Java是完全面向对象的语言...
### Java核心知识精讲 #### 一、Java简介 Java是一种广泛使用的高级编程语言...以上就是从“李兴华java笔记”中提取的核心知识点,涵盖了Java的基础语法、面向对象编程的基本概念和技术点。希望对学习Java有所帮助。
### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...
7. **字符串与正则表达式**:Java的String类和Pattern类在处理文本时非常有用,笔记会深入解析字符串的操作和正则表达式的匹配规则。 8. **反射机制**:Java反射机制允许程序在运行时动态地获取类的信息并调用其...
下面列出了一些常用的正则表达式示例,它们在Java中同样适用: 1. **匹配整数**: - 只包含数字:`"^[0-9]*$"` - 只包含n位数字:`"^\d{n}$"` - 只包含n位以上的数字:`"^\d{n,}$"` - 只包含m到n位数字:`"^\d{...