在正则表达式中,.是代表任一字符,.+是代表任意一个或多个字符,[]括号代表括号中任一字符,[.]是代表 ". "号,[.]+是代表一个或多个 ". "号,和\.+的意思是一样的。
正则表达式中()的作用和在数学中的很像,就是把括起来的内容当作一个整体。
[]的作用上面说了,{n},匹配前面的字符n次,{n,}匹配前面的字符n次或更多,{n,m}匹配前面的字符最少n次,最多m次,如果n为0,可以不指定。
元字符 |
描述 |
.点 |
匹配任何单个字符。例如正则表达式r.t匹配这些字符串:rat、rut、r t,但是不匹配root。 |
$ |
匹配行结束符。例如正则表达式weasel$ 能够匹配字符串"He's a weasel"的末尾 但是不能匹配字符串"They are a bunch of weasels." |
^ |
匹配一行的开始。例如正则表达式^When in能够匹配字符串"When in the course of human events"的开始,但是不能匹配"What and When in the" |
* |
匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符。 |
\ |
这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配。例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符。 |
[ ] [c1-c2] [^c1-c2] |
匹配括号中的任何一个字符。例如正则表达式r[aou]t匹配rat、rot和rut,但是不匹配ret。可以在括号中使用连字符-来指定字符的区间,例如正则表达式[0-9]可以匹配任何数字字符;还可以制定多个区间,例如正则表达式[A-Za-z]可以匹配任何大小写字母。另一个重要的用法是“排除”,要想匹配除了指定区间之外的字符——也就是所谓的补集——在左边的括号和第一个字符之间使用^字符,例如正则表达式[^269A-Z] 将匹配除了2、6、9和所有大写字母之外的任何字符。 |
\< \> |
匹配词(word)的开始(\<)和结束(\>)。例如正则表达式\<the\>能够匹配字符串"for the wise"中的"the",但是不能匹配字符串"otherwise"中的"the"。注意:这个元字符不是所有的软件都支持的。 |
\( \) |
将 \( 和 \) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用 \1 到\9 的符号来引用。 |
| |
将两个匹配条件进行逻辑“或”(Or)运算。例如正则表达式(him|her) 匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:这个元字符不是所有的软件都支持的。 |
+ |
匹配1或多个正好在它之前的那个字符。例如正则表达式9+匹配9、99、999等。注意:这个元字符不是所有的软件都支持的。 |
? |
匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。 |
{i} {i,j} |
匹配指定数目的字符,这些字符是在它之前的表达式定义的。例如正则表达式A[0-9]{3} 能够匹配字符"A"后面跟着正好3个数字字符的串,例如A123、A348等,但是不匹配A1234。而正则表达式[0-9]{4,6} 匹配连续的任意4个、5个或者6个数字字符。注意:这个元字符不是所有的软件都支持的。 |
关于匹配和替换的示例:
//如果rt中包含了表示数值意义的连续数字时,去除高位的字符“0”
String rt = "1002abc03d00405F060708009";
Pattern p = Pattern.compile("(?<![0-9])(0+)([1-9][0-9]*)");
Matcher m = p.matcher(rt);
while (m.find()){
System.out.print(m.group() + " " + m.group(1) + " " + m.group(2));
rt = m.replaceFirst(m.group(2));
System.out.println("" + rt);
m.reset(rt);
}
System.out.println(rt);
打印结果如下:
03 0 31002abc3d00405F060708009
00405 00 4051002abc3d405F060708009
060708009 0 607080091002abc3d405F60708009
1002abc3d405F60708009
分享到:
相关推荐
根据提供的文件信息,我们可以整理出一系列与正则表达式相关的...以上内容概括了从文件中提取出来的正则表达式知识点,这些知识点覆盖了正则表达式的多个应用场景,对于从事软件开发、数据分析等领域的人来说非常实用。
根据提供的文件信息,我们可以归纳出一系列与正则表达式相关的知识点。这些知识点涵盖了不同类型的正则表达式的构建方法及其用途,对于理解和应用正则表达式非常有帮助。 ### 正则表达式概述 正则表达式(Regular ...
在编程领域,C#语言提供了一种强大的工具——正则表达式,用于处理字符串和验证数据格式。正则表达式是一种模式匹配语言,它能够帮助我们有效地检查、查找、替换和提取文本。在C#中,我们可以使用System.Text....
根据提供的标题、描述以及部分内文,我们可以整理出一系列与正则表达式相关的知识点,这些知识点主要涵盖了在软件开发过程中常见的验证和匹配需求。 ### 常用正则表达式 #### 1. 匹配中文字符 **正则表达式**: `[\...
以下是对Perl正则表达式的一些关键知识点的详细解释: 1. **基本匹配**: - `\d`:匹配任何数字,等同于 `[0-9]`。 - `\D`:匹配任何非数字字符,等同于 `[^0-9]`。 - `\w`:匹配任何字母、数字或下划线,等同于...
通过学习正则表达式的基础知识,如元字符的含义和用法,以及如何组合它们来创建复杂的模式,用户可以从简单的查找和替换任务,逐步进阶到解决更复杂的文本处理问题。例如,使用"^\w+"可以匹配一行的开头单词,而"[^0...
正则表达式知识点总结 正则表达式是强大的字符串匹配模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。下面是正则表达式的基本概念和运用方法: 1. 正则...
根据提供的文件信息,我们可以总结出以下常用正则表达式的知识点: ### 1. 价格验证正则表达式 ```javascript var regex_price = /(^[-+]?[1-9]\d*(\.\d{1,2})?$)|(^[-+]?[0]{1}(\.\d{1,2})?$)/; ``` **解释:** ...
根据提供的文档信息,本文将详细解释C#中的正则表达式使用方法,涵盖基础语法、特殊字符以及定位字符的应用,并通过实例加深理解。 ### 一、C#中的正则表达式简介 正则表达式是一种强大的文本处理工具,用于模式...
总的来说,这份培训材料涵盖了正则表达式的理论知识和实践应用,特别强调了在C#中的使用。通过学习和实践,开发者能够更好地掌握这一技能,提高在文本处理、数据提取和验证等方面的效率。对于任何想要在C#开发中充分...
至于提供的部分内容,主要是关于计算机学习资料的网址链接,它们似乎与正则表达式的知识点无关,因此我们不会将这部分内容纳入知识点的整理。这些链接主要指向了各种编程语言、开发工具和学习资源的下载页面,提供了...
### 正则表达式知识点详解 #### 一、正则表达式基础概念 正则表达式(Regular Expression),通常被简称为regex或regexp,是一种在文本数据中进行搜索和替换的强大工具。它允许用户通过一系列特定的字符组合来定义...
为了更好地理解和使用正则表达式,以下是根据提供的文件内容整理的知识点。 首先,正则表达式中的转义字符和定位符包括: - `^`:匹配输入字符串的开始位置。在多行模式(Multiline属性)下,还可以匹配换行符之后...
以上就是从给定文件中整理出的相关正则表达式知识点及其应用场景。正则表达式是进行文本模式匹配的强大工具,在各种编程语言中都有广泛的应用,掌握它们对于提高开发效率和解决实际问题具有重要意义。
以下是对正则表达式的基础知识和常见用法的详细解析: 1. **基本结构**: 正则表达式通常由模式和修饰符组成。模式定义了要匹配的字符序列,而修饰符则影响匹配的方式。例如,`/pattern/flags`,其中`pattern`是...
【C#正则表达式整理备忘】 正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和解析字符串。在C#中,正则表达式被广泛应用于各种字符串处理场景,例如验证用户输入、数据提取等。下面将详细阐述C#中正则...
### 经典正则表达式知识点详解 #### 一、正则表达式的概念与作用 正则表达式是一种强大的文本模式匹配工具,在多种编程语言中都有广泛应用,主要用于字符串的搜索和替换操作。它可以帮助开发者快速地查找、替换或...
以下是对给定文件中的正则表达式知识点的详细解释: ### 匹配单个字符 1. **[ab5@]**:这是一个字符类,它会匹配方括号内的任何单一字符,即它可以匹配"a"、"b"、"5"或"@"。 2. **[^abc]**:这是取反的字符类,它...
标题和描述中的知识点聚焦于C#正则表达式的理解和应用,尤其强调了“@”符号在C#中作为逐字字符串标识符的角色,以及一系列基本的语法字符和定位字符的用法。以下是对这些知识点的深入解析: ### “@”符号在C#中的...