Mysql REGEXP完全匹配

时间:2016-03-28 19:45:48

标签: regex

我试图只匹配" arcfour"而不是arcfour128或arcfour256。什么是正确的正则表达式线?

select * from TABLE where COLUMN REGEXP ==>  arcfour  <===;

我只需要什么样的regexp语法来查找arcfour?

COLUMN中的示例列表:

arcfour
arcfour128
arcfour256

2 个答案:

答案 0 :(得分:3)

您可以使用^选择字符串的开始,并使用$选择结束。这意味着^$中的所有内容都将是唯一可以存在的数据。它必须是独立的,不被任何额外的字符或符号包围。

例如,^data$仅在字符串data时匹配。在它之前或之后的任何数量的字母将导致字符串不匹配。因此,1datadata2将不匹配。

在您的情况下,您应该使用以下代码和RegEx:

select * from TABLE where COLUMN REGEXP '^arcfour$'

Live Demo on RegExr

请注意,如果您希望表数据仅匹配一个特定字符串,则不使用RegEx是有意义的,但使用=,如下所示:

select * from TABLE where COLUMN = 'arcfour'

答案 1 :(得分:-1)

如果你想要完全匹配,你不应该首先使用正则表达式,只是做一个相等的匹配。

SELECT * FROM table WHERE column = 'arcfour'