如以下语句所示,它匹配以一个或多个数字开头的字符串,后面跟着一个空格。你能给我解释一下为什么结果是0而不是1吗?
但是,如果我只是删除^,它输出1。据我所知,^匹配字符串的开头,我没有使用错误吗?
谢谢。
SELECT "345 boxberry ave " REGEXP '^d*[[.space.]][[:<:]]b';
[edit]基本上,我想匹配任何以'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等缩写。