如以下语句所示,它匹配以一位或多位数字开头并后跟空格的字符串。你能向我解释一下为什么这会以 0 而不是 1 结束吗?
但是,如果我只是删除^ ,它会输出 1 。据我所知,^匹配字符串的开头,我没有用错吗?
提前致谢。
SELECT "345 boxberry ave " REGEXP '^\d*[[.space.]][[:<:]]b';
[编辑] 基本上,我想匹配任何以“b”开头的街道名称。
替换\d
为[[:digit:]]
:
SELECT "345 boxberry ave " REGEXP '^[[:digit:]]*[[.space.]][[:<:]]b';
另请注意,*
匹配零个或多个 a 字符的+
任何序列,同时匹配一个或多个 a 字符的任何序列。我不确定您的要求,但如果需要+
数字,您可能需要使用。
以简单的方式,您可以这样做:
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等缩写。