元 字 符 | 意 思 | 例 子 |
/ | 说明要匹配的字符是一个特殊字符、常量或者反向引用。(反向引用重复上一次匹配。) | /n 匹配换行符 // 匹配 / /( 匹配( /) 匹配) |
^ | 匹配字符串的开头位置 | 如果A是字符串中的第一个字符,^A 匹配A |
$ | 匹配字符串的末尾位置 | 如果B是字符串中的最后一个字符,$B匹配B |
* | 匹配前面的字符0次或多次。 | ba*rk 可以匹配 brk、bark、baark等等 |
+ | 匹配前面的字符1次或多次。 | ba+rk 可以匹配bark、baark等等,但是不能匹配brk |
? | 匹配前面的字符0次或1次 | ba?rk 只能匹配brk和bark |
{n} | 匹配一个字符恰好n次,其中n是一个整数 | hob{2}it 可以匹配hobbit |
(续表)
元 字 符 | 意 思 | 例 子 | |
{n,m} | 匹配一个字符至少n次,最多m次,其中n和m都是整数 | hob{2,3}it 只能匹配hobbit和hobbbit | |
. | 匹配除null之外的任意单个字符 | hob.it 可以匹配hobait、hobbit等等 | |
(pattern) | 匹配指定模式的一个子表达式。可以使用子表达式构成复杂的正则表达式。在这种子表达式中,可以访问单次的匹配,称为捕获(capture) | anatom(y|ies) 可以匹配anatomy和 anatomies | |
x|y | 匹配x或y,其中x和y是一个或多个字符 | war|peace 可以匹配 war 或 peace | |
[abc] | 匹配中括号内的任意一个字符 | [ab]bc 可以匹配 abc 和 bbc | |
[a-z] | 匹配指定范围内的任意一个字符 | [a-c]bc 可以匹配 abc、bbc和cbc | |
[: :] | 指定一个字符类,可以匹配该类中的任何字符 | [:alphanum:] 可以匹配字符0-9、A-Z和a-z [:alpha:] 可以匹配字符A-Z和a-z [:blank:] 可以匹配空格或tab键 [:digit:] 可以匹配数字 0-9 [:graph:] 可以匹配非空字符 [:lower:] 可以匹配小写字母a-z [:print:] 与 [:graph:] 类似,不同之处在于[:print:] 包括空格字符 [:punct:] 可以匹配标点符号.,'''等等 [:space:] 可以匹配所有的空白字符 [:upper:] 可以匹配所有的大写字母A~Z [:xdigit:] 可以匹配十六进制数字 0~9、A~F和a~f | |
[..] | 匹配一个组合元素,例如多字符元素 | 无 | |
[==] | 指定等价类 | 无 | |
/n | 这是对前一次捕获的一个反向引用,其中n是一个正整数 | (.)/1 可以匹配两个连续相同的字符。(.)可以匹配除null之外的任何单个字符,而 /1 则重复上次匹配的内容,即再次匹配相同的字符,因此可以匹配两个连续相同的字符 | |