我是关于MySQL正则表达式的新手,在搜索网络3天之后我就不得不放弃了!
我需要在数据库中找到单词,确切的单词。但我也需要注意标点符号(会很好我提供标点符号列表)。这些单词可能位于数据库记录的开头,结尾或中间。他们也可以将唯一的数据记录到记录中。我不关心大写或小写的单词。
因此,我需要在这种情况下检索单词:
狮子 - 狮子。 - 狮子, - 狮子; - 狮子......(点) - 狮子......(hellip)等(可能有许多其他标点符号)或
<狮>'狮子' - “狮子” - (狮子) - &lt;狮子&gt; - /狮子/等。但那些不正确:
Lion.tiger - Lions - superlion - &lt; Lion“ - (Lion&gt; - Lion .....
我已尝试在几个网站上提供了几十个正则表达式,但没有一个能够准确地解决这个问题。
干杯。
答案 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:]]';