您的位置:首页 > 其它

正则表达式(2) -- 模式匹配符

2016-04-06 22:39 141 查看
正则表达式(1)

2. 正则表达式语法

正则表达式的语法主要就是对各个元字符功能的描述。元字符从功能上大致分为:模式匹配符,定位符与原义字符,限定符,选择匹配符,特殊字符,字符匹配符,分组组合和反向引用符。

2.1 模式匹配符

下面的表格列出了在正则表达式中能够使用的字符列表及相关描述。

字符描述
\ 指出接着的字符为特殊字符。例如,"/b/" 匹配字符 "b",通过在 "b" 前面加一个反斜杠,也就是"/\b/",则该字符变成特殊字符,表示匹配一个单词的分界线。
^ 表示匹配的字符必须在最前边。例如,"/^A/" 不匹配 "an A" 中的 "A",但匹配 "An A" 中最前面的 "A"。
$与^类似,匹配最末的字符。例如,"/t$/" 不匹配 "eater" 中的 "t",但匹配 "eat" 中的 "t"。
* 匹配*前面的字符0次或n次。例如,"/bo*/" 可以匹配 "A ghost booooed" 中的 "booo" 或 "A bird warbled" 中的 "b",但不匹配 "A goat grunted"中的任何字符。
+ 匹配+前面的字符1次或n次。等价于"{1,}"。例如,"/a+/" 匹配 "candy" 中的 "a" 和 "caaaaaandy" 中的所有 "a" 。
?匹配?前面的字符0次或1次。例如,"/e?le?/" 匹配 "angel" 中的 "el" 和 "angle" 中的 "le"。
. (小数点) 匹配除换行符外的所有单个字符。 例如,"/.n/" 匹配 "nay, an apple is on the tree" 中的 "an" 和 "on",但不匹配 "nay"。
(x) 匹配 "x" 并记录匹配的值。例如,"/(foo)/" 匹配和记录 "foo bar" 中的 "foo"。匹配子串能被结果数组中的索引[1],...
返回,或被RegExp对象的属性$1...$9返回
x|y 匹配 "x" 或者 "y"。例如,"/green|red/" 匹配 "green apple" 中的 "green" 和 "red apple" 中的 "red"。
{n} 这里的n是一个正整数。匹配前面的n个字符。例如,"/a{2}/" 不匹配 "candy" 中的 "a",但匹配 "caaandy" 中前面的两个 "a"。
{n,} 这里的n是一个正整数。匹配至少n个前面的字符。例如,"/a{2,}/" 不匹配 "candy" 中的 "a",但匹配 "caaaaandy" 中的所有 "a"。

{n,m} 这里的n和m都是正整数。匹配至少n个最多m个前面的字符。例如, "/a{1,3}/" 不匹配 "cndy" 中的任何字符。但匹配 "candy" 中的 "a","caandy" 中的前面两个 "a"和 "caaaandy" 中的前面3个 "a"。需要注意的是,即使 "caaaandy" 中有很多个 "a",但只匹配前面的3个 "a"。
[xyz] 字符列表,匹配列出的任意字符。可以通过连字符"-"指出一个字符范围。例如, "[abcd]" 跟 "[a-d]" 一样,它们匹配 "brisket" 中的 "b" 和 "ache" 中的 "a"。
[^xyz] 字符补集。匹配除了列出的字符外的所有东西。可以使用连字符 "-" 指出一个字符范围。
[\b] 匹配一个空格(不要与 "/b" 混淆)
\b匹配一个单词的分界线,如一个空格。例如,"/\bn\w/"匹配 "noonday"中的"no","/\wy\b/"匹配 "possibly yesterday" 中的 "ly"。
\B匹配一个单词的非分界线。例如,"/\w\Bn/" 匹配 "noonday" 中的 "on","/y\B\w/" 匹配 "possibly yesterday" 中的 "ye"。
\cXX是一个控制字符。匹配一个字符串的控制字符。例如,"/\cM/"匹配一个字符串中的control-M
\d匹配一个数字,等价于 "[0-9]"。例如,"/\d/" 或 "/[0-9]/" 匹配 "B2 is the suite number" 中的 "2"
\D匹配任何的非数字,等价于 "[^0-9]"。例如,"/\D/" 或 "/[^0-9]/" 匹配 "B2 is the suite number" 中的 "B"
\f匹配一个表单符
\n匹配一个换行符
\r匹配一个回车符
\s匹配一个单个white空格符,包括空格、tab、form feed、换行符。等价于 "[\f\n\r\t\v]"
\S匹配一个制表符
\v匹配一个顶头制表符
\t匹配一个制表符
\w匹配所有的数字和字母以及下划线,等价于"[A-Za-z0-9]"
\W匹配除数字、字母、下划线外的其他字符。等价于"[^A-Za-z0-9]"
\n 这里的n是一个正整数。匹配一个正则表达式的最后一个子串的n的值(计数左圆括号)。
\ooctal和\xhex这里的 "\ooctal" 是一个八进制的 escape值,而 "\xhex" 是一个十六进制的escape值,允许在一个正则表达式中嵌入ASCII码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: