标签:cin 特殊符号 表达式 使用 空格 导致 http 序列 ref
| 1、非打印字符 | |||
| \cx | 匹配由x指明的控制字符。 | \cM:匹配一个control-M或回车符 | x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。 |
| \f | 匹配一个换页符,等价于\x0c \cL | ||
| \n | 匹配一个换行符,等价于\x0a \cJ | ||
| \r | 匹配一个回车,等价于\x0d \cM | ||
| \s | 匹配一个任意空白字符,等价于[\f\n\r\t\v] | ^\s*\s$:匹配开头和结尾的空白字符 | |
| \S | 匹配一个任意非空白字符,等价于[^\f\n\r\t\v] | ||
| \t | 匹配一个制表符 | ||
| \v | 匹配一个垂直制表符 | ||
| 2、特殊字符 | |||
| () | 标记一个子表达式的开始和结束位置,子表达式可获取供以后使用 | (\s*):匹配连续空格 | var str = "abc sb b sa b sc abc sd"; var reg = /s([abc]+\b)/; var arr = str.match(reg); //arr = ("sb","sa","sc"); //临时缓存区$1 = "b",$2 = "a",$3 = "c"; ()会导致所有匹配存到一个临时缓冲区,缓冲区编号为1-99,每个缓冲区都可以用\n(1<n<99的十进制数)来引用。 var reg2 = /s([abc]+\b)\s+\1\b/;//匹配s([abc]+\b)\s+b\b的字符串 var arr2 = str.match(reg); //arr2 = ("sb b","sa b"); |
| [] | 定义一个匹配的字符串范围 | [ab]:匹配a或b号 | |
| {} | 一般用来表示匹配的长度 | \s{3}:匹配三个空格 | |
| * | 匹配前面子表达式零次或多次 | a*:匹配连续的一个或多个a | |
| + | 匹配前面子表达式一次或多次 | a+:匹配连续的两个或多个a | |
| . | 匹配换行符以外的所有字符 | 要匹配换行符用[.\n] | |
| ? | 匹配前面的子表达式零次或多次,或指明一个非贪婪限定字符 | 贪婪匹配:正则表达式趋向于匹配最大长度的字符串("aaaaa".match(/a*/);//aaaaa) 非贪婪匹配:匹配到结果就好了("aaaaa".match(/a*?/);//a) ?的四种用法: 1、匹配前面子表达式0/1次 2、指明非贪婪限定字符 *?、+?、??、{n}?、{n,}?、{n,m}? 3、原文符号,\? 4、不捕捉模式 (?……) |
|
| \ | 将下一个字符标记为特殊字符或原意字符或者向后引用 | \n:匹配换行符 \\:匹配\ \1:引用第一个缓存区 |
|
| ^ | 匹配输入字符的开始位置。在[]中使用,表示不接受改字符集合 | ^[1-9][0-9]*{3}:不以0开头的四位数字 | |
| $ | 匹配输入字符的结尾的位置。如果设置了RegExp对象的Multitle属性,则也匹配‘\n’或‘\r‘ | [a-z]*a$:匹配以a结尾的字符串 | |
| | | 指明两项之间的一个选择 | a|b:匹配a或b | |
| 3、限定符 | |||
| {n} | n是一个非负整数,匹配确定的n次 | a{3}:匹配aaa | |
| {n,} | n是一个非负整数,匹配至少n次 | a{3,}:匹配aaa,aaaa,aaaaa…… | |
| {n,m} | n<m,匹配至少n次至多m次 | a{2,3}匹配aa,aaa | |
| \b | 单词分界符 | ll\b:匹配hell中的“ll”,但是不匹配hello中的“ll” | |
| \B | 非单词分界符序列 | ll\B:不匹配hell中的“ll”,但匹配hello中的“ll” | |
| \A | 总是能够匹配带搜索文本的起始位置 | ||
| \Z | 标示在未指定任何模式下匹配的字符,通常是字符串的末尾位置,或者是在字符串末尾的换行符之前的位置 | ||
| \z | 字匹配字符串的末尾,而不考虑任何换行符 | ||
| \G | 当前匹配的起始位置 | ||
| 4、预定义字符集 | |||
| \d | 任意一个十进制数字,相当于[0-9] | ||
| \D | 任意一个非十进制数字 | ||
| \s | 任意一个空白字符 | ||
| \S | 任意一个非空白字符 | ||
| \w | 任意一个单词字符,相当于[a-zA-Z0-9] | ||
| \W | 任意一个非单词字符 | ||
| 5、修饰符 | |||
| i | 忽略大小写的模式(?i……,?-i……,?i:……) | [a-z]i:等同于[a-zA-Z] | |
| M | 多文本模式。即字符串内部有多个换行符时,影响“^”,“$”的匹配 | ||
| s | 但文本模式。在此模式下,元字符“.”可以匹配换行符。其他模式规则则不能匹配换行符 | ||
| X | 忽略空白字符 | ||
| 6、捕获分组 | |||
| (exp) | 匹配exp,并捕获文本到自动命名的组里 | ||
| (?<name>exp) | 匹配exp,并捕获文本到名为name的分组里 | ||
| (?:exp) | 匹配exp,不补货匹配的文本,也不给次分组匹配组号 | ||
| 以下为零宽断言 | |||
| (?=exp) | 匹配exp前面的位置 | "How are you doing".match(/(?<txt>.+(?=ing))/);txt = "How are you do"; | |
| (?<=exp) | 匹配exp后面的位置 | ||
| (?=!exp) | 匹配前面不是exp的位置 | ||
| (?<=!exp) | 匹配后面不是exp的位置 | ||
| 别人写的教程 | http://blog.csdn.net/baidu_31333625/article/details/72846270 | ||
| 常用正则表达式 | https://c.runoob.com/front-end/854 | ||
标签:cin 特殊符号 表达式 使用 空格 导致 http 序列 ref
原文地址:http://www.cnblogs.com/ljab/p/7019384.html