简单的mysql regexp

时间:2013-01-19 08:36:27

标签: mysql regex

如下面的语句所示,它将字符串开头与后跟空格的一个或多个数字匹配。你能解释一下为什么最终会有0而不是1吗?
但是,如果我只是删除 ^ ,则输出1。据我所知, ^ 匹配字符串的开头,我是不是错误地使用了它?
提前感谢。

SELECT "345 boxberry ave " REGEXP '^\d*[[.space.]][[:<:]]b';

[edit]基本上,我希望将任何街道名称与“b”匹配。

2 个答案:

答案 0 :(得分:1)

\d替换为[[:digit:]]

SELECT "345 boxberry ave " REGEXP '^[[:digit:]]*[[.space.]][[:<:]]b';

请注意,*匹配任何一个零个或多个字符的序列,而+匹配一个或多个字符的任何序列。我不确定您的要求,但如果需要数字,则可能需要使用+

答案 1 :(得分:1)

以简单的方式,您可以这样做:

 SELECT "345 boxberry ave " REGEXP '^[0-9]*[ ]+b.*'; //for begin with zero or more digits than one space and begin with character b 

 SELECT "345 boxberry ave " REGEXP '^[0-9]+[ ]+b.*'; //for begin with one or more digits

你不能在mysql中使用\ d,\ w等缩写。