整个单词的正则表达式,包括标点符号

时间:2013-07-12 02:17:16

标签: mysql regex

我是关于MySQL正则表达式的新手,在搜索网络3天之后我就不得不放弃了!

我需要在数据库中找到单词,确切的单词。但我也需要注意标点符号(会很好我提供标点符号列表)。这些单词可能位于数据库记录的开头,结尾或中间。他们也可以将唯一的数据记录到记录中。我不关心大写或小写的单词。

因此,我需要在这种情况下检索单词:

狮子 - 狮子。 - 狮子, - 狮子; - 狮子......(点) - 狮子......(hellip)等(可能有许多其他标点符号)

<狮>'狮子' - “狮子” - (狮子) - &lt;狮子&gt; - /狮子/等。

但那些不正确:

Lion.tiger - Lions - superlion - &lt; Lion“ - (Lion&gt; - Lion .....

我已尝试在几个网站上提供了几十个正则表达式,但没有一个能够准确地解决这个问题。

干杯。

1 个答案:

答案 0 :(得分:0)

您应该能够使用单词边界。否则你必须声明你愿意接受的所有角色。

select id,myRecord from my_records where myRecord REGEXP '[[:<:]]lion[[:>:]]';

这是SQL Fiddle使用您提供的一些匹配示例。

请注意,因为Lion.tiger中的.字符通常被认为是英语中的单词障碍(句子结束声明),所以您可能需要在不匹配的情况下创建一个特殊情况。

select id,myRecord from my_records where
myRecord REGEXP '[[:<:]]lion[[:>:]]' and
myRecord NOT REGEXP '[[:<:]]lion\.[[:alpha:]]';

Example fiddle