- 正则表达式,又称规则表达式,英文名为Regular Expression,在代码中常简写为regex、regexp或RE。
- 正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
- 正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
正则表达式的作用:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
正则表达式的特点:
1. 灵活性、逻辑性和功能性非常强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
元字符
应用举例:
- 在test.txt文件中的每一行中搜索正则表达式r.t,并打印输出匹配的行。正则表达式r.t匹配r开头接着任何一个字符再接着字符t。正则表达式是大小写敏感的。要想同时匹配大写和小写字母,应该使用字符区间元字符(方括号)。正则表达式[Rr]能够同时匹配R和r。所以,要想匹配一个大写或者小写的r接着任何一个字符再接着一个t就要使用这个表达式:[Rr].t。
- 抑扬字符(^),有时也被叫做插入符。例如,想找到text.txt中行首"he"打头的行,如果用简单表达式he,会匹配the,所以要使用正则表达式^he,它只匹配在行首出现的he。有时候指定“除了×××都匹配”,当抑扬字符(^)出方括号中时,它表示“排除”,例如要匹配he ,但是排除前面是t or s的情形(也就是the和she),可以使用:[^st]he。
- 要指定特定数量的匹配,要使用大括号(注意必须使用反斜杠“\”来转义)。想匹配所有10和100的实例而排除1和 1000,可以使用:10\{1,2\},这个正则表达式匹配数字1后面跟着1或者2个0的模式。在这个元字符的使用中一个有用的变化是忽略第二个数字,例如正则表达式0\{3,\} 将匹配至少3个连续的0。
不同的语言(如PHP和JAVA)、相同语言的不同类库(如来自Sun的Java Regular Expression类库跟Apache Jakarta的正则表达式类库)间,用法会有所差别,在使用的时候,要注意这些差别。