1

如以下语句所示,它匹配以一位或多位数字开头并后跟空格的字符串。你能向我解释一下为什么这会以 0 而不是 1 结束吗?
但是,如果我只是删除^ ,它会输出 1 。据我所知,^匹配字符串的开头,我没有用错吗?
提前致谢。

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

[编辑] 基本上,我想匹配任何以“b”开头的街道名称。

4

2 回答 2

1

替换\d[[:digit:]]

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

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

于 2013-01-19T08:57:14.223 回答
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等缩写。

于 2013-01-19T09:01:24.143 回答