正则表达式中的"^"这个符号的一些思考
2017-01-11 13:49
267 查看
在学习正则表达式的时候,一些常见的规则我们都不难理解,但是有 一个正则表达式中的特殊字符让我一直有点搞不懂,就是”^”这个字符,文档上给出了解释是匹配输入的开始,如果多行标示被设置成了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
经过对比,我发现了只要是”^”这个字符是在中括号”[]”中被使用的话就是表示字符类的否定,如果不是的话就是表示限定开头。我这里说的是直接在”[]”中使用,不包括嵌套使用。
其实也就是说”[]”代表的是一个字符集,”^”只有在字符集中才是反向字符集的意思。
相关文章推荐
- 正则表达式中的"^"这个符号的一些思考
- 正则表达式中的"^"这个符号的一些思考
- 正则表达式中的"^"这个符号的一些思考
- 解决附加进程调试时出现"无法命中断点,还没有为文档加载任何符号这个问题"
- 吃"软饭"的一些不良思考习惯
- wcf 出这个错是"由于目标机器积极拒绝无法连接"
- 这个"还杯格格"剧本不错
- 因为不想再程序中写循环,因此把UI页面需要更新的纪录的主键组成了一个以","隔开的字符串,将这个字符串传入存储过程中进行处理(转)
- 关于"表达式"的一些笔记
- "*" "::" "." ":" "->" c/c++编程中几种符号的用法和说明
- 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 ...
- "世上最经典的25句话[zt] "很有道理,人需要一些话时常在耳边提醒
- 转自随风飘荡自由飞翔 SQL技巧:快速把握一些异常精妙的"SQL"语句
- 正斜杠,又称左斜杠,符号是"/";反斜杠,也称右斜杠,符号是"\"。
- Aciidoc 中的"++"符号
- 在java中"\"这个符号是转义符.
- "请备份该数据库的事务日志以释放一些日志空间"解决方法 推荐
- 这个是csdn的"不完全log"查看站吧可惜只有四个月的()
- C++编译过程中"没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题"? 的彻底解决
- 吃"软饭"的一些不良思考习惯