MySQL正则表达式选择

时间:2017-01-18 14:05:31

标签: mysql regex

我觉得很难解决一个简单的(我猜)任务。我有一个表格,其中包含以下格式的链接:/ text(或任何字符)/,/ text(或任何字符)/ text1(或任何字符),http://domain.tld/text/text1等...我想要列出(选择)仅具有以下格式的链接: / text(或任何字符)/ text1(或任何字符) 我尝试了以下规则:

select href from table
where href not like '%http%'
and href REGEXP '^[/][a-zA-Z](/)[a-zA-Z]'

空集(0.00秒)

select href from table
where href not like '%http%'
and href REGEXP '^[/][a-z](/)%';

空集(0.00秒)

请帮忙。 谢谢!

1 个答案:

答案 0 :(得分:4)

要仅查找以/开头的条目,然后有除/以外的1个字符,然后再次使用此模式和字符串结尾,则需要使用带有锚点和否定括号的REGEXP表达式:

REGEXP '^/[^/]+/[^/]+$'

或者用范围/限制量词来收缩它:

REGEXP '^(/[^/]+){2}$'

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • / - 文字/
  • [^/]+ - 除/以外的1个字符
  • /[^/]+ - 与上述相同
  • $ - 字符串结束。