正则表达式(1.1):
简介
正则表达式,是一种让计算机拥有在文本检索某种模式的能力的基础。
比如: 我需要删除一封邮件中带有“I love you”字眼的邮件,就需要靠正则表达式进行搜索匹配。
简单的说 “正则表达式” 就是用一些字符和特殊符号组成的字符串,它们描述了模式的重复或者多个字符。
模式匹配
简称匹配,有两种方法完成模式匹配:
1、搜索
在字符串任意部分中搜索匹配的模式。通过search()
函数或方法来实现。
2、匹配
判断一个字符串能否从起始处全部或者部分地匹配某个模式。通过调用match()
函数或方法来实现。
元字符
所谓元字符就是一些给予正则表达式强大的功能和灵活性的特殊符号和字符串。
表示法 描述 示例
符号:
literal 匹配文本字符串的字面值literal foo
re1|re2 匹配正则表达式re1或者re2。 foo|bar
. 匹配任何字符 b.b
^ 匹配字符串起始部分 ^Dear
* 匹配0次或者多次前面出现的正则表达式 [A-Za-z0-9]*
+ 匹配1次或者多次前面出现的正则表达式 [a-z]+\.com
? 匹配0次或者1次前面出现的正则表达式 goo?
{N} 匹配N次前面出现的正则表达式 [0-9]{3}
{M,N} 匹配M~N次前面出现的正则表达式 [0-9]{5,9}
[...] 匹配来自字符集的任意单一字符 [aeiou]
[..x-y..] 匹配x-y范围中的任意字符集 [0-9],[A-Za-z]
[^...] 不匹配此字符集中的任何字符 [^aeiou],[^A-Za-z0-9]
(*|+|?|{})? 匹配上面频繁出现的任何一个字符, .*?[a-z]
包括某一范围的字符 .
(...) 匹配封闭的正则表达式,另存为子组 ([0-9]{3})?,f(oo|u)bar
特殊字符:
\d 匹配十进制数 data\d+.txt
\w 匹配字母数字字符 [A-Za-z_]\w+
\s 匹配空格字符 of\sthe
\b 匹配单词边界 \bThe\b
\N 匹配已保存的子组N price:\16
\c 逐字匹配任何特殊字符c \.,\\,\*
\A(\Z) 匹配字符串的起始(结束) \ADear