这些是我在mysql5.1参考手册上看到的,一些不理解的东西....
mysql> SELECT 'fo\nfo' REGEXP '^fo$'; -> 0
mysql> SELECT 'fofo' REGEXP '^fo'; -> 1 1: ^符号代表什么意思....//^表示否定 是不是表示看fofo是不是不是以fo开头的字符串 那照着这个意思那上面第二条 不是应该为0 为什么是1呢...
2: 后面紧跟的$代表什么意思....
mysql> SELECT 'abcde' REGEXP 'a[bcd]{2}e'; -> 0
mysql> SELECT 'abcde' REGEXP 'a[bcd]{3}e'; -> 1
1: [abc]和[abc]*的区别 //[abc]* 我知道是代表0个或者多个abc
组成的字符串..
2: 我对上面的例子稍微做了改动SELECT 'abcde' REGEXP 'a[bcd]{2,}e'
-->1 // 我有点晕了a{2}和a{2,}的区别.... 帮助文档上面也说了a{n}与a的n个实例准确匹配。a{n,}匹配a的n个或更多实例。a{m,n}匹配a的m~n个实例,包含m和n。
照着上面说a{n}与a的n个实例准确比配. 问题又来了 那上面的mysql> SELECT 'abcde' REGEXP 'a[bcd]{2}e'; -> 0
mysql> SELECT 'abcde' REGEXP 'a[bcd]{3}e'; -> 1 为什么又会出现不同的结果呢...//
还有个问题...当我做如下改动的时候..SELECT 'abcde' REGEXP '[bcd]{2}e'; ---> 1 如果是以A{2}为例 'a[bcde]{2}'和'[bcde]{2}'这两个中是
a[bcde]代表A还是[bcde]代表A呢..... 我是刚刚接触正则表达式 //代表我的一些理解....有什么不对的地方请指正一下....
mysql> SELECT 'fo\nfo' REGEXP '^fo$'; -> 0
mysql> SELECT 'fofo' REGEXP '^fo'; -> 1 1: ^符号代表什么意思....//^表示否定 是不是表示看fofo是不是不是以fo开头的字符串 那照着这个意思那上面第二条 不是应该为0 为什么是1呢...
2: 后面紧跟的$代表什么意思....
mysql> SELECT 'abcde' REGEXP 'a[bcd]{2}e'; -> 0
mysql> SELECT 'abcde' REGEXP 'a[bcd]{3}e'; -> 1
1: [abc]和[abc]*的区别 //[abc]* 我知道是代表0个或者多个abc
组成的字符串..
2: 我对上面的例子稍微做了改动SELECT 'abcde' REGEXP 'a[bcd]{2,}e'
-->1 // 我有点晕了a{2}和a{2,}的区别.... 帮助文档上面也说了a{n}与a的n个实例准确匹配。a{n,}匹配a的n个或更多实例。a{m,n}匹配a的m~n个实例,包含m和n。
照着上面说a{n}与a的n个实例准确比配. 问题又来了 那上面的mysql> SELECT 'abcde' REGEXP 'a[bcd]{2}e'; -> 0
mysql> SELECT 'abcde' REGEXP 'a[bcd]{3}e'; -> 1 为什么又会出现不同的结果呢...//
还有个问题...当我做如下改动的时候..SELECT 'abcde' REGEXP '[bcd]{2}e'; ---> 1 如果是以A{2}为例 'a[bcde]{2}'和'[bcde]{2}'这两个中是
a[bcde]代表A还是[bcde]代表A呢..... 我是刚刚接触正则表达式 //代表我的一些理解....有什么不对的地方请指正一下....
^fo匹配以fo开头的字符串,所以第二个为1;[bcd]{2}可以匹配任意两个字符,只要是b,c,d的组合,所以没有办法匹配上bcd
[bcd]{3}可以匹配任意三个字符,只要是b,c,d的组合,所以匹配上bcd
[bcd]{2,}可以匹配任意两个或更多字符,只要是b,c,d的组合,所以匹配上bcd
{m,n}只约束前一个模式。