565086101 发表于 2014-8-18 18:30:38

mysql正则表达式匹配号码数字

本帖最后由 565086101 于 2014-8-18 18:33 编辑

id      name      reg
1      AAAAAA      /(\d)\1{5}/
2      AAAAA      /(\d)\1{4}/
3      AAAA      /(\d)\1{3}/
4      AAA      /(\d)\1{2}/
5      AA      /(\d)\1/
6      AABBBB      /(\d)\1(\d)\2{3}/
7      AABBB      /(\d)\1(\d)\2{2}/
8      AABB      /(\d)\1(\d)\2/
9      ABCDEABCDE      /(\d{5})\1/
10      ABCDE*ABCDE      /(\d{5})\d\1/
11      ABCD*ABCD      /(\d{4})\d+\1/
12      ABCDABCD      /(\d{4})\1/
13      ABCABC      /(\d{3})\1/
14      ABAB      /(\d{2})\1/
15      ABCDE      /01234|12345|23456|34567|45678|56789/
16      AABBCC      /(\d)\1(\d)\2(\d)\3/
17      ABABAB      /(\d{2})\1{2}/
18      AABCC      /(\d)\1\d(\d)\2/
这是手机号码php正则匹配,现在想使用mysql 正则,亲们应该怎么改为mysql 的正则写法,谢谢!

565086101 发表于 2014-8-18 22:21:09

但是对于aabbbb和abcde 这种有哪位高手有简单的方法吗?

565086101 发表于 2014-8-18 18:35:22

000000|111111|222222|333333|444444|555555|666666|777777|888888|999999
00000|11111|22222|33333|44444|55555|66666|77777|88888|99999
0000|1111|2222|3333|4444|5555|6666|7777|8888|9999
000|111|222|333|444|555|666|777|888|999
00|11|22|33|44|55|66|77|88|99
上面的还可以写为|(肯定也有更简单的写法),但是下面的就更多花样了,亲们帮帮忙,感谢!

565086101 发表于 2014-8-18 18:38:42

现在就是想把php的正则匹配转变为mysql 正则作为查询条件
$sql="haoma REGEXP '8{5}'";   这代表5个8,但是我想让它{5}(这样等于没有效果),   从0-9任意5个相同数字。。。都应该怎么写呢?谢谢

565086101 发表于 2014-8-18 22:20:08

000000|111111|222222|333333|444444|555555|666666|777777|888888|999999
00000|11111|22222|33333|44444|55555|66666|77777|88888|99999
0000|1111|2222|3333|4444|5555|6666|7777|8888|9999
000|111|222|333|444|555|666|777|888|999
00|11|22|33|44|55|66|77|88|99

可以用以下的替换

0{6}|1{6}|2{6}|3{6}|4{6}|5{6}|6{6}|7{6}|8{6}|9{6}
0{5}|1{5}|2{5}|3{5}|4{5}|5{5}|6{5}|7{5}|8{5}|9{5}
0{4}|1{4}|2{4}|3{4}|4{4}|5{4}|6{4}|7{4}|8{4}|9{4}
0{3}|1{3}|2{3}|3{3}|4{3}|5{3}|6{3}|7{3}|8{3}|9{3}
0{2}|1{2}|2{2}|3{2}|4{2}|5{2}|6{2}|7{2}|8{2}|9{2}

应该还有更简单的方法,请高手指教,谢谢!

kider 发表于 2014-8-19 11:07:20

帮不上...
页: [1]
查看完整版本: mysql正则表达式匹配号码数字