如下面的语句所示,它将字符串开头与后跟空格的一个或多个数字匹配。你能解释一下为什么最终会有0而不是1吗?
但是,如果我只是删除 ^ ,则输出1。据我所知, ^ 匹配字符串的开头,我是不是错误地使用了它?
提前感谢。
SELECT "345 boxberry ave " REGEXP '^\d*[[.space.]][[:<:]]b';
[edit]基本上,我希望将任何街道名称与“b”匹配。
答案 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等缩写。