正则表达式(2) -- 模式匹配符
2016-04-06 22:39
141 查看
正则表达式(1)
2. 正则表达式语法
正则表达式的语法主要就是对各个元字符功能的描述。元字符从功能上大致分为:模式匹配符,定位符与原义字符,限定符,选择匹配符,特殊字符,字符匹配符,分组组合和反向引用符。
2.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"。 |
\cX | X是一个控制字符。匹配一个字符串的控制字符。例如,"/\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码。 |
相关文章推荐
- 利率计算v5.0--结对--软件工程
- 第五周 PSP 燃尽图 以及 进度条总结
- 杭电oj-1232-畅通工程
- CodeForces 626F Group Projects(dp)
- 第五周项目(2)-时间类(3)
- 作业四: 结对编程项目---四则运算
- iOS 屏幕适配
- Linux 下 -bash: mysql: command not found解决办法
- 图像容器格式互相转换(mat,iplimage*)
- UVa 185 - Roman Numerals
- collapse-calendar-view的使用
- [IO]——文件写入
- Python实例2
- jquery之重写(扩展)$.ajax和$.fn.load等方法详解
- 排序
- File upload error - unable to create a temporary file
- 作业四:结对编程项目---四则运算
- 论如何科学的看小本子
- Python
- 在网站插入优酷播放器的方法