我想在一个词的开头或结尾搜索“ed”,下面的sql语句只匹配一个完全匹配的词。
SELECT * FROM ul_product
where productname REGEXP '\\bed\\b'
如果我做了下面的操作,就会得到ed在单词开头或结尾的结果
SELECT * FROM ul_product
where productname REGEXP '(\\bed)|(ed\\b)'
应该是这样的吗?
网上对单词边界和示例的描述使我相信语句1会产生语句2的结果。
我可以按原样使用我创建的语句进行“精确”和“部分”匹配,但这是对的吗?
1条答案
按热度按时间wwtsj6pe1#
正则表达式
'\\bed\\b'
搜索'ed'
被单词边界包围-换句话说,它搜索单词'ed'
.另一方面,正则表达式:
'(\\bed)|(ed\\b)'
搜索其中一个'\\bed'
或者'ed\\b'
(管道字符在regex中代表“or”)。所以它是匹配的'ed'
在一个词的开头或结尾-这似乎是你想要的。注意这里不需要括号。你可以这样写: