0

我正在尝试用 MySQL 中的 REGEX 将一个单词与其他单词进行匹配,但我无法做到正确。

例如,搜索单词foo应匹配以下内容(不区分大小写):

foobar
barfoo
foofoo
football
foo-bar
foo_bar

并且不匹配它们之间的空格,例如:

foo bar

我在网上搜索并找到了一些正则表达式,但它们与上述所有选项都不匹配。

这是我目前的模式:

REGEX '[[:<:]]'.$word.'(![:space:])[[:>:]]
4

1 回答 1

0

我假设您在 . 之前或之后允许任何非空白字符foo

然后你可以使用

'^[^[:space:]]*'.$word.'[^[:space:]]*$'

转换为 PCRE 正则表达式,其中\S表示非空格字符并\b表示单词边界:

^\S*foo\S*$

所以这匹配包含foo但不包含任何空格的单词。

于 2012-07-24T10:20:56.287 回答