这些是我在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呢..... 我是刚刚接触正则表达式 //代表我的一些理解....有什么不对的地方请指正一下....

解决方案 »

  1.   

    ^是开头,$是结尾。^fo$是要匹配整个字符串就是fo,所以第一个为0;
    ^fo匹配以fo开头的字符串,所以第二个为1;[bcd]{2}可以匹配任意两个字符,只要是b,c,d的组合,所以没有办法匹配上bcd
    [bcd]{3}可以匹配任意三个字符,只要是b,c,d的组合,所以匹配上bcd
    [bcd]{2,}可以匹配任意两个或更多字符,只要是b,c,d的组合,所以匹配上bcd
    {m,n}只约束前一个模式。
      

  2.   

    学校断了一断时间网 拖到现在才结贴不好意思啊 .......乌 感谢iisbsd的答复 分给你了.