正则表达式是一种字符模式,用于在查找过程中匹配相同的字符。
大多数程序里,正则表达式都被括在两个正斜杠(/)之间;例如,“/love/”就是由正斜杠界定的正则表达式,在被查找行中,若该行包含有“love”字符串则匹配成功。
元字符 | 功能 | 示例 | 匹配对象 |
---|---|---|---|
^ | 行首定位符 | /^love/ | 匹配所有love开头的行 |
$ | 行尾定位符 | /love$/ | 匹配所有以love结尾的行 |
. | 匹配一个字符 | /l..e/ | 匹配包含一个l,后跟两个字符,跟一个e的行 |
* | 匹配0或多个前一字符 | / *love/ | 匹配包含在0或多个空格后的模式love的行 |
[] | 匹配一组字符中任一个 | /[Ll]ove/ | 匹配包含love或Love的行 |
[x-y] | 匹配某范围一组字符中任一个 | /[A-Z]ove/ | 匹配后面跟着ove的一个A到Z之间的字符 |
[^] | 匹配不在指定组内的字符 | /[^A-Z]/ | 匹配不在范围A到Z之间的任意字符 |
\ | 用于转义字符 | /love\./ | 匹配包含love,后面跟一个句点符号。(没有被转义时)句点通常匹配一个任意字符 |
\< | 词首定位符 | /\<love/ | 匹配以love开头的词的行 |
\> | 词尾定位符 | /love\>/ | 匹配以love结尾的词的行 |
\(..\) | 匹配稍后要使用的字符的标签 | /\(love\)able\ler/ | 最多可以使用9个标签,模式中最左边的标签是第一个。例如,模式love被保存为标签1,以后可引用为\1;这个例子中,查找串中是后面跟着lover的lovable |
x\{m\}或x\{m,\}或x\{m,n\} | 字符x的重复出现:m次、至少m次、至少m次但不超过n次。 | /o\{5,10\}/ | 匹配有5到10个字母o连续出现的行 |