正则表达式
用通配符类比正则表达式:
很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂。
下面我们会给大家展现几个简单的例子:
|
需求 |
正则表达式 |
|
你在一篇英文小说里查找hi |
hi |
|
解释:它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。通常,处理正则表达式的工具会提供一个忽略大小写的选项; 特点:1、它能找到含有hi的单词,包括:hi,high,His;2、它忽略大小写,如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种。 |
|
|
精确地查找hi这个单词 |
\bhi\b |
|
解释:\b是正则表达式规定的一个特殊代码(元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。 |
|
|
hi后面不远处跟着一个Lucy |
\bhi\b.*\bLucy\b |
|
解释:*同样是元字符,不过它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。因此,.*连在一起就意味着任意数量的不包含换行的字符。 |
|
|
中国的电话号码 |
0\d\d-\d\d\d\d\d\d\d\d |
|
解释:以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字 |
|
|
中国的电话号码(改进版) |
0\d{2}-\d{8} |
|
解释:这里\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次(8次) |
更多实例:
"^\\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\\d+$" //整数
"^\\d+(\\.\\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\\d+)(\\.\\d+)?$" //浮点数
"^[A-Za-z]+$" //由26个英文字母组成的字符串
"^[A-Z]+$" //由26个英文字母的大写组成的字符串
"^[a-z]+$" //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串
"^\\w+$" //由数字、26个英文字母或者下划线组成的字符串
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$" //email地址
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$" //url
常用元字符
代码 |
说明 |
. |
匹配除换行符以外的任意字符 |
\w |
匹配字母或数字或下划线或汉字 |
\s |
匹配任意的空白符 |
\d |
匹配数字 |
\b |
匹配单词的开始或结束 |
^ |
匹配字符串的开始 |
$ |
匹配字符串的结束 |
常用限定符
代码/语法 |
说明 |
* |
重复零次或更多次 |
+ |
重复一次或更多次 |
? |
重复零次或一次 |
{n} |
重复n次 |
{n,} |
重复n次或更多次 |
{n,m} |
重复n到m次 |
常用反义词
代码/语法 |
说明 |
\W |
匹配任意不是字母,数字,下划线,汉字的字符 |
\S |
匹配任意不是空白符的字符 |
\D |
匹配任意非数字的字符 |
\B |
匹配不是单词开头或结束的位置 |
[^x] |
匹配除了x以外的任意字符 |
[^aeiou] |
匹配除了aeiou这几个字母以外的任意字符 |
正则表达式的测试
正则表达式的测试器很多,网上也有在线的,这里我给大家推荐“Regex Match Tracer”
http://www.jb51.net/softs/34398.html
同时给大家推荐一个网站(30分钟学会正则表达式)
http://www.jb51.net/tools/zhengze.html
<!--EndFragment-->
相关推荐
本资源“正则表达式语法总结.zip”包含了一个关于正则表达式的详细总结,以及可能的示例图片“孔子1.jpg”,和一个名为“RegExp-master”的可能包含更多相关代码或实例的文件夹。 一、正则表达式基本语法 1. **...
下面是正则表达式语法大全的知识点总结: 1. 特殊字符:在正则表达式中,某些字符具有特殊意义,例如: * `\`:将下一个字符标记为特殊字符、文本、反向引用或八进制转义符。 * `^`:匹配输入字符串开始的位置。 *...
### 正则表达式语法详解 #### 一、引言 正则表达式是一种强大的文本模式匹配工具,广泛应用于各种编程语言中,用于文本搜索、替换等操作。它结合了普通字符和特殊字符(元字符),能够精确地描述在文本中需要匹配...
提供的HTML手册可能包含了更详细的正则表达式语法、特殊字符、高级技巧以及实例。手册通常会涵盖正则表达式的元字符、预定义字符类、选择、重复、分组、反向引用、否定预查等内容,并且会有大量的实例解析,帮助读者...
### 正则表达式应用总结 #### 一、概述 正则表达式是计算机科学领域内一种用于描述字符串模式的强大工具,在多种编程语言中均有应用。对于Java而言,正则表达式更是处理字符串和文本数据不可或缺的一部分。Java...
本书《精通正则表达式(第三版)简体中文版》主要介绍了正则表达式的概念、语法以及如何在不同的环境中高效地使用正则表达式。 #### 二、正则表达式的语法基础 1. **元字符**:正则表达式中的特殊字符,用于指定...
### 正则表达式语法详解 #### 一、正则表达式基础规则 ##### 1.1 普通字符 普通字符主要包括字母、数字、汉字、下划线及未被赋予特殊含义的标点符号。在正则表达式中,这类字符用于精确匹配其自身。例如: - ...
3. **预处理错误检查**:编译时会检查正则表达式语法,如果存在错误,会在编译阶段报错,而不是在运行时。 ### 示例 ```python import re # 编译正则表达式 regex = re.compile(r'\d+\.\d+') # 使用编译后的正则...
正则表达式的语法由一系列用于描述字符串模式的字符和元字符组成。 ### 需求分析 根据题目描述,我们需要构建一个正则表达式来匹配一段字符串,该字符串除了允许出现特定字符(例如下划线 `_`)之外,不允许包含...
总结,正则表达式是一种强大的文本处理工具,通过组合不同的元字符、量词、分组等语法元素,可以构建出复杂的模式来匹配各种字符串。学习并掌握正则表达式,将对编程、数据处理及文本分析等工作带来极大的便利。
### 报表工具FineReport...熟练掌握这些基本的正则表达式语法及其应用场景对于报表开发人员来说是非常必要的。此外,随着技术的发展,正则表达式的功能也在不断扩展和完善,因此持续学习新的特性和技巧也是十分重要的。
- **语法结构**:正则表达式是由一系列字符和特殊符号组成的模式串,用于匹配字符串中的特定模式。 - **常见符号**: - `.`:匹配任意单个字符。 - `*`:匹配前面的子表达式零次或多次。 - `+`:匹配前面的子...
正则表达式的核心在于其丰富的语法特性,这些语法通常被各种编程语言所支持。下面简要介绍一些基本的语法元素: - **元字符**:如`.`(匹配任意单个字符)、`^`(表示字符串的开始)、`$`(表示字符串的结束)等。 ...
### 正则表达式通用语法详解 #### 一、引言 正则表达式(Regular Expressions, 简称 REs)是一种强大的文本处理工具,最初由数学家Stephen Kleene于1956年提出,并逐渐发展成为一种广泛应用于各种编程语言和技术...
### Oracle正则表达式详解(用法+实例) #### 一、正则表达式简介 正则表达式是一种用于匹配字符串中字符组合的工具。它由一个或多个字符及特殊的字符元组成,能够帮助我们执行复杂的字符串搜索和替换任务。在...
二、正则表达式语法 1. 基本字符:如"a"、"b"等代表它们自己。 2. 特殊字符(元字符):如"."表示任意字符,"^"表示行首,"$"表示行尾,"\d"代表数字,"\D"代表非数字,"\w"代表单词字符,"\W"代表非单词字符等。 3....