用mysql做查询的时候想筛选出只包含英文字符和数字的字段,但是用正则表达式的“*”好像没有重复字符的作用,查询结果如下:查询结果中还是会有中文字符等各种诡异的字符,不知道是我的查询语句有问题还是什么?在网上也找不到是什么原因,只能求教各位学长了。。。
--
-- Beihang Open Source Club
beihang-open...@googlegroups.com
https://groups.google.com/d/forum/beihang-open-source-club
---
您收到此邮件是因为您订阅了 Google 网上论坛的“北航开源俱乐部”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 beihang-open-sourc...@googlegroups.com。
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
用mysql做查询的时候想筛选出只包含英文字符和数字的字段,但是用正则表达式的“*”好像没有重复字符的作用,查询结果如下:查询结果中还是会有中文字符等各种诡异的字符,不知道是我的查询语句有问题还是什么?在网上也找不到是什么原因,只能求教各位学长了。。。
--
*可以匹配零个, 把*换成+。 前后加上^和$, 不然有字母数字就会匹配。
不建议使用mysql的regex,用不上索引。
--
目测匹配规则是 '^[0-9a-zA-Z]+$' (单引号双引号都OK)如果你不设定起始和结束 正则会匹配【包含】该规则而不是【完全等于】该规则的列值而*代表大于等于0 也就是你匹配了全部的列当然会包含中文等你不想看见的东东- -所以应该用+ 代表至少有一次并且要指定起始^和结束位置$祝好码年快乐^_^mail from Starry^ ^