有人可以为我提供正则表达式,以匹配[a-z]
和[A-Z]
之前或之后的搜索字词吗? (其他字符都可以。)即,在搜索key
时,我不希望在搜索结果中使用keyboard
,但key.
没问题。
答案 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,我假设您使用的是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]|$)