搜索词的正则表达式不在[a-z]和[A-Z]之前或之后

时间:2008-11-07 11:01:17

标签: mysql regex

有人可以为我提供正则表达式,以匹配[a-z][A-Z]之前或之后的搜索字词吗? (其他字符都可以。)即,在搜索key时,我不希望在搜索结果中使用keyboard,但key.没问题。

6 个答案:

答案 0 :(得分:7)

由于你没有指定你正在使用的正则表达式引擎,我将假设一个基线,在这种情况下“[^A-Za-z]key[^A-Za-z]”就足够了。

如果您还想在该行的开头和结尾捕捉字符串,您还必须使用“^key[^A-Aa-z]”和“[^A-Aa-z]key$”。

答案 1 :(得分:6)

\bkey\b应该做你想做的事。

\b是一个单词边界

答案 2 :(得分:3)

由于此问题标有,我假设您使用的是MySQL regexp。那么[[:<:]]key[[:>:]]就是你想要的。有关详细信息,请参阅documentation at dev.mysql.com

答案 3 :(得分:1)

如果您使用的是Perl,那么您需要的是\b,即“字边界”:

m/\bkey\b/

答案 4 :(得分:1)

或者更简洁[^\w]key[^\w]

答案 5 :(得分:0)

如果您这样做,则无需OR

(^|[^A-Za-z])key([^A-Za-z]|$)