正则表达式中的"^"这个符号的一些思考
2017-08-22 15:33
162 查看
在学习正则表达式的时候,一些常见的规则我们都不难理解,但是有 一个正则表达式中的特殊字符让我一直有点搞不懂,就是”^”这个字符,文档上给出了解释是匹配输入的开始,如果多行标示被设置成了true,同时会匹配后面紧跟的字符。比如
1
然后他还有第二种用法就是
当这个字符出现在一个字符集合模式的第一个字符时,他将会有不同的含义。
比如
1
这里的”^”的意思是字符类的否定,上面的正则表达式的意思是匹配不是(a到z和空白字符)的字符。
以前总是搞不懂,什么时候”^”是否定字符,什么时候是匹配开始行,然后就查资料进行对比,终于发现了规律。
2
3
4
5
1
2
3
4
5
上面这个正则表达式中”^”就是限定开头的意思
这些正则表达式中”^”表示的就是表示字符类的否定。
2
3
4
1
2
3
4
经过对比,我发现了只要是”^”这个字符是在中括号”[]”中被使用的话就是表示字符类的否定,如果不是的话就是表示限定开头。我这里说的是直接在”[]”中使用,不包括嵌套使用。
其实也就是说”[]”代表的是一个字符集,”^”只有在字符集中才是反向字符集的意思。
/^A/会匹配"An e"中的A,但是不会匹配"ab A"中的A1
1
然后他还有第二种用法就是
当这个字符出现在一个字符集合模式的第一个字符时,他将会有不同的含义。
比如
/[^a-z\s]/会匹配"my 3 sisters"中的"3"1
1
这里的”^”的意思是字符类的否定,上面的正则表达式的意思是匹配不是(a到z和空白字符)的字符。
以前总是搞不懂,什么时候”^”是否定字符,什么时候是匹配开始行,然后就查资料进行对比,终于发现了规律。
/[(^\s+)(\s+$)]/g (^cat)$ (^cat$) ^(cat)$ ^(cat$)1
2
3
4
5
1
2
3
4
5
上面这个正则表达式中”^”就是限定开头的意思
这些正则表达式中”^”表示的就是表示字符类的否定。
[^a]表示“匹配除了a的任意字符”。 [^a-zA-Z0-9]表示“找到一个非字母也非数字的字符”。 [\^abc]表示“找到一个插入符或者a或者b或者c”。 [^\^]表示“找到除了插入符外的任意字符”。(呕!)1
2
3
4
1
2
3
4
经过对比,我发现了只要是”^”这个字符是在中括号”[]”中被使用的话就是表示字符类的否定,如果不是的话就是表示限定开头。我这里说的是直接在”[]”中使用,不包括嵌套使用。
其实也就是说”[]”代表的是一个字符集,”^”只有在字符集中才是反向字符集的意思。
相关文章推荐
- 正则表达式中的"^"这个符号的一些思考
- 正则表达式中的"^"这个符号的一些思考
- 正则表达式中的"^"这个符号的一些思考
- "无法为更新定位行。一些值可能已在最后一次读取后已更改。"问题的解决方案
- "无法解析的外部符号"的几种情况
- vPro这个"v"字代表什么意思
- "lambda"和“bind”的初步思考
- 正斜杠,又称左斜杠,符号是"/";反斜杠,也称右斜杠,符号是"\"。
- linux 下 gdb没有符号表被读取。请使用"file" 命令
- 这个是csdn的"不完全log"查看站吧可惜只有四个月的()
- 正则表达式的一些符号
- "ldconfig:/usr/lib/libpcap.so.1 不是符号链接"
- "accumulate"的思考
- 股权转让这个创业方向靠谱吗?关于潜力股这个创业公司的一些思考
- 数据库日志文件已满,"请备份该数据库的事务日志以释放一些日志空间"解决方法
- C++ 单例模式遇到"无法解析的外部符号"错误
- xcode 左边导航栏中,类文件后面的标记“A”,"M","?"……等符号的含义
- 一点IT"边缘化"的人的思考
- 关于在"a"标签中添加点击事件的一些问题
- "&"符号你知道多少