正则表达式 - 搜索单词的开头

Phi*_*ore 2 regex mysql search

您好我正在建立一个网站,并按名称搜索地名.我需要一个正则表达式来匹配以下情况....

Search = Lon

Matches
Londonderry
Greater London

But no match in
Millon
Run Code Online (Sandbox Code Playgroud)

我试过' ^Lon'但是这并没有显示大伦敦,

我试过' Lon'但这匹配了millon,

我也搞乱了字边界,但不能让它正常工作.我确定这很简单,但正则表达式是经典的棘手.

kap*_*apa 8

在MySQL中,您可以使用[[:<:]]和标记Regexp中的单词边界[[:>:]].

所以这应该在WHERE子句中起作用:

regexp '[[:<:]]Lon'
Run Code Online (Sandbox Code Playgroud)

例如:

select * from articles where lower(title) like '[[:<:]]lon'
Run Code Online (Sandbox Code Playgroud)

MySQL Regexp手册

注意:你应该听取@ gbn关于性能问题的建议.