标签:a* 贪婪模式 返回 区间 特殊性 解释 code com 字母
未知的圣神,
熟悉的轻凌;
拿起了图灵系列的正则,心里瑟瑟发抖,比我大犀牛还重;
对于正则,一直在使用,从来没有认真的去整理过,满满的敬畏,看了两天意识到确实是有点高估难度;
正则:
抛网址 :https://regexper.com/ 觉得有这个正则学习就够了、理解正则的各种规则给出了形象的图示;
熟练使用正则:
1,记忆规则:
1 | . | 匹配除了换行符之外的任何单个字符 |
2 | \ | 在非特殊字符之前的反斜杠表示下一个字符是特殊的,不能从字面上解释。例如,没有前\的‘b‘通常匹配小写‘b‘,无论它们出现在哪里。如果加了‘\‘,这个字符变成了一个特殊意义的字符,反斜杠也可以将其后的特殊字符,转义为字面量。例如,模式 /a*/ 代表会匹配 0 个或者多个 a。相反,模式 /a\*/ 将 ‘*‘ 的特殊性移除,从而可以匹配像 "a*" 这样的字符串。 |
3 | | | 逻辑或操作符 |
4 | [] | 定义一个字符集合,匹配字符集合中的一个字符,在字符集合里面像 . ,\ 这些字符都表示其本身 |
5 | [^] | 对上面一个集合取非 |
6 | - | 定义一个区间,例如[A-Z] ,其首尾字符在 ASCII 字符集里面 |
1 | {m,n} | 匹配前面一个字符至少 m 次至多 n 次重复,还有{m} 表示匹配 m 次,{m,} 表示至少 m 次 |
2 | + | 匹配前面一个表达式一次或者多次,相当于 {1,} ,记忆方式追加(+),起码得有一次 |
3 | * | 匹配前面一个表达式零次或者多次,相当于 {0,} ,记忆方式乘法(*),可以一次都没有 |
4 | ? | 单独使用匹配前面一个表达式零次或者一次,相当于 {0,1} ,记忆方式,有吗?,有(1)或者没有(1),如果跟在任何量词* ,+ ,? ,{} 后面的时候将会使量词变为非贪婪模式(尽量匹配少的字符),默认是使用贪婪模式。比如对 "123abc" 应用 /\d+/ 将会返回 "123",如果使用 /\d+?/ ,那么就只会匹配到 "1"。 |
1 | ^ | 单独使用匹配表达式的开始 |
2 | \$ | 匹配表达式的结束 |
3 | \b | 匹配单词边界 |
4 | \B | 匹配非单词边界 |
5 | (?=p) | 匹配 p 前面的位置 |
6 | (?!p) | 匹配不是 p 前面的位置 |
1 | \d | [0-9] ,表示一位数字,记忆方式 digit |
2 | \D | [^0-9] ,表示一位非数字 |
3 | \s | [\t\v\n\r\f] ,表示空白符,包括空格,水平制表符(\t ),垂直制表符(\v ),换行符(\n ),回车符(\r ),换页符(\f ),记忆方式 space character |
4 | \S | [^\t\v\n\r\f] ,表示非空白符 |
5 | \w | [0-9a-zA-Z] ,表示数字大小写字母和下划线,记忆方式 word |
6 | \W | [^0-9a-zA-Z] ,表示非单词字符 |
标签:a* 贪婪模式 返回 区间 特殊性 解释 code com 字母
原文地址:http://www.cnblogs.com/fnncat/p/7504317.html