表1.常用的元字符
|
代码
|
说明
|
.
|
匹配除换行符以外的任意字符
|
\w
|
匹配字母或数字或下划线或汉字
|
\s
|
匹配任意的空白符
|
\d
|
匹配数字
|
\b
|
匹配单词的开始或结束
|
^
|
匹配字符串的开始
|
$
|
匹配字符串的结束
|
1.\b -----代表着单词的开头或结尾
例: hi后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。
2.\d------匹配一个数字
例: 0\d{2}-\d{8} \d必须连续重复匹配2次(8次)
3.. ------------ 匹配除了换行符以外的任意字符
4.\s -------------匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等
5.\w -------------字母或数字或下划线或汉字
6.
表2.常用的限定符
|
代码/语法
|
说明
|
*
|
重复零次或更多次
|
+
|
重复一次或更多次
|
?
|
重复零次或一次
|
{n}
|
重复n次
|
{n,}
|
重复n次或更多次
|
{n,m}
|
重复n到m次
|
7.。^-------匹配你要用来查找的字符串的开头,$-----匹配结尾
要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$
8.[0-9] 0-9之间的一个数字 [a-z0-9A-Z_] a-z 0-9 A-Z之间任意一个字符
9.| ---表示(或) 0\d{2}-\d{8}|0\d{3}-\d{7} 这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)。
10.()----分组 (\d{1,3}\.){3}\d{1,3}是一个简单的IP地址匹配表达式。要理解这个表达式,请按下列顺序分析它:\d{1,3}匹配1到3位的数字,(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})。
11.
表3.常用的反义代码
|
代码/语法
|
说明
|
\W
|
匹配任意不是字母,数字,下划线,汉字的字符
|
\S
|
匹配任意不是空白符的字符
|
\D
|
匹配任意非数字的字符
|
\B
|
匹配不是单词开头或结束的位置
|
[^x]
|
匹配除了x以外的任意字符
|
[^aeiou]
|
匹配除了aeiou这几个字母以外的任意字符
|
12.
表4.常用分组语法
|
分类
|
代码/语法
|
说明
|
捕获
|
(exp)
|
匹配exp,并捕获文本到自动命名的组里
|
(?<name>exp)
|
匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
|
(?:exp)
|
匹配exp,不捕获匹配的文本,也不给此分组分配组号
|
零宽断言
|
(?=exp)
|
匹配exp前面的位置
|
(?<=exp)
|
匹配exp后面的位置
|
(?!exp)
|
匹配后面跟的不是exp的位置
|
(?<!exp)
|
匹配前面不是exp的位置
|
注释
|
(?#comment)
|
这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读
|
\b(\w+)\b\s+\1\b可以用来匹配重复的单词,像go go, 或者kitty kitty。这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(\b(\w+)\b),这个单词会被捕获到编号为1的分组中,然后是1个或几个空白符(\s+),最后是分组1中捕获的内容(也就是前面匹配的那个单词)(\1)。
你也可以自己指定子表达式的组名。要指定一个子表达式的组名,请使用这样的语法:(?<Word>\w+)(或者把尖括号换成'也行:(?'Word'\w+)),这样就把\w+的组名指定为Word了。要反向引用这个分组捕获的内容,你可以使用\k<Word>,所以上一个例子也可以写成这样:\b(?<Word>\w+)\b\s+\k<Word>\b。
13.
表5.懒惰限定符
|
代码/语法
|
说明
|
*?
|
重复任意次,但尽可能少重复
|
+?
|
重复1次或更多次,但尽可能少重复
|
??
|
重复0次或1次,但尽可能少重复
|
{n,m}?
|
重复n到m次,但尽可能少重复
|
{n,}?
|
重复n次以上,但尽可能少重复
|
分享到:
相关推荐
### 正则表达式学习笔记详解 正则表达式(Regular Expression)是一种强大的文本匹配工具,广泛应用于数据处理、文本搜索、格式验证等场景。以下是对给定文件中提到的各种正则表达式的详细解析,旨在帮助读者深入...
基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码....
### Java正则表达式基础知识与应用 #### 一、引言 正则表达式是一种强大的文本处理工具,它能够帮助开发者高效地进行字符串的搜索、替换等操作。Java中的正则表达式支持广泛的标准和特性,是进行文本处理任务的理想...
这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...
JavaScript中的正则表达式是处理字符串的强大工具,用于匹配、替换、分割文本。它们在编程中扮演着不可或缺的角色,尤其在验证用户输入、提取数据、格式化内容等方面。以下是对正则表达式的基础知识和常见用法的详细...
好东西才与大家分享!这是博客园一位老师的正则表达式教学笔记,很精炼的阐述,看了你一定不后悔……
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和提取字符串中的特定模式。在编程语言中,正则表达式广泛应用于数据验证、文本分析...通过不断的实践和学习,你可以创建更复杂的正则表达式来满足各种需求。
在"基于java的开发源码-多线程反射泛型及正则表达式学习笔记和源码.zip"这个压缩包中,包含了三个关键的Java编程概念:多线程、反射和泛型,以及正则表达式。下面我们将详细探讨这些知识点。 1. **多线程**:多线程...
本文档是小小明个人笔记,为学习和使用正则表达式提供了一个系统的资源。 Python正则表达式全套笔记v0.3 1.1 作者简介 小小明是数据处理专家,擅长解决各种复杂数据处理问题,并且提供了个人笔记,涵盖了正则...
学习正则表达式能够帮助我们更好地处理复杂文本需求,如验证输入信息、查找和替换特定模式的文本,以及在大量日志和数据中提取关键信息。 正则表达式的语法结构通常是用斜杠 `/` 包裹模式,并可以加上可选的修饰符...
这个压缩包包含的“java多线程反射泛型及正则表达式学习笔记和源码”正是针对这些关键知识点的学习资料。 首先,我们来详细探讨多线程。在Java中,多线程允许程序同时执行多个不同的任务,提高了程序的并发性和效率...