浅谈正则表达式

在开发过程中,最经常打交道的数据类型就属字符串了,我们经常要对字符串做各种各样的处理,其中最常做的就是字符串的比较,比较匹配的情况多种多样,非常麻烦,在开发过程中,我感觉到正则表达式为解决这个问题提供非常方便的处理方式。
正则表达式在网络上众说纷纭,我取一个感觉最为合理的解释:正则表达式是对字符串操作的一种逻辑公式,用事先定义好的特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);2. 可以通过正则表达式,从字符串中获取我们想要的特定部分,所以正则表达式在搜索字符串上拥有很强大的作用。
正则表达式的特点是:1. 灵活性、逻辑性和功能性非常的强;2. 可以迅速地用极简单的方式达到字符串的复杂控制。3. 对于刚接触的人来说,比较晦涩难懂。
正是正则表达式强大的功能特点,所以获得大量的计算机语言的支持:PHP、C#、Java、C++、VB、Javascript、Ruby以及python等。Java在jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。
由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word等大型编辑器,都可以使用正则表达式来处理文本内容。
正则表达式可以说是由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,可以说好的正则表达式没有不用上元字符的,但也因为元字符的灵活,让初学者感到有点晕头转向。
下面列出部分正则表达式的元字符和描述。
\       转义字符。如,“n”匹配字符“n”。“\n”匹配一个换行符。
^      匹配输入字符串的开始位置。^也匹配“n”或“r”之后的位置。
$      匹配输入字符串的结束位置。$也匹配“n”或“r”之前的位置。
*       匹配前面的子表达式零次或多次。如,zo*能匹配“z”以及“zoo”。*等价于{0,}。
+      匹配前面的子表达式一次或多次。+等价于{1,}。
?       匹配前面的子表达式零次或一次。如,“d(s)?”可以匹配“ds”或“ds”中的“d”。
{n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。
x|y   匹配x或y。例如,“z|food”能匹配“z”或“food”。
\d    匹配一个数字字符。等价于[0-9]。
\w   匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。
\W   匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。

Words translated by CCJK

146,096,379

We are Certified

Our Client Satisfaction

rating for previous quarte

4.00

Over 95% of our clients recommend our language services to others


Copyright © CCJK Technologies Co., Ltd. 2000-2017. All rights reserved.
TOP