当前位置: 首页 > 面试题库 >

我们如何使用MySQL和正则表达式查找域名

娄浩荡
2023-03-14
问题内容

我在数据库中有一些域列表,例如

http://www.masn.com/index.html
http://www.123musiq.com/index.html 等等

我需要的是

http://www.masn.com
http://www.123musiq.com

我怎样才能做到正则表达式???


问题答案:

在中MySQL,正则表达式可以匹配,但不能返回子字符串。

您可以使用SUBSTRING_INDEX

SELECT  SUBSTRING_INDEX('www.example.com', '/', 1)

,但是它不是协议前缀安全的。

如果您混合使用前缀和无前缀URL,请使用以下命令:

SELECT  url RLIKE '^http://',
        CASE
        WHEN url RLIKE '^http://' THEN
                SUBSTRING_INDEX(SUBSTRING_INDEX(url, '/', 3), '/', -1)
        ELSE
                SUBSTRING_INDEX(url, '/', 1)
        END
FROM    (
        SELECT   'www.example.com/test/test' AS url
        UNION ALL
        SELECT   'http://www.example.com/test'
        ) q


 类似资料:
  • 本文向大家介绍mysql中如何使用正则表达式查询,包括了mysql中如何使用正则表达式查询的使用技巧和注意事项,需要的朋友参考一下 基本形式 属性名 regexp ‘匹配方式' 正则表达式的模式字符 ^ 匹配字符开始的部分 eg1: 从info表name字段中查询以L开头的记录 select * from info where name regexp '^L'; eg2: 从info表name字段

  • 主要内容:查询以特定字符或字符串开头的记录,查询以特定字符或字符串结尾的记录,替代字符串中的任意一个字符,匹配多个字符,匹配指定字符串,匹配指定字符串中的任意一个,匹配指定字符以外的字符,使用{n}或者{nm}来指定字符串连续出现的次数正则表达式主要用来查询和替换符合某个模式(规则)的文本内容。例如,从一个文件中提取电话号码,查找一篇文章中重复的单词、替换文章中的敏感语汇等,这些地方都可以使用正则表达式。正则表达式强大且灵活,常用于非常复杂的查询。 MySQL 中,使用 REGEXP 关键字指定

  • 在这个问题的背景下,我想做以下修改: 查找: funcA(参数0,参数1,参数2,参数3); 替换: funcA可以有除param0之外的任意数量的参数。怎么做呢?为简单起见,忽略基本情况,即当传递给funcA的参数仅为param0时。 funcA是: 职能是: 编辑: 参数(param1,param2..)只是包含字母的字符串。

  • 问题内容: 我有一个简单的任务,我需要搜索一个以字符串字符和其后的一位数字开头的记录。我正在尝试的是 和 但是两个查询总是返回一条记录 好像我执行以下查询 它返回 这意味着我有以ALA开头的记录,其后是一个数字, 编辑 我正在使用PHP MySQL和innodb引擎来实现它。 问题答案: 我认为您可以使用REGEXP代替LIKE

  • (?:x) (x) 这两个好像可以平价替换的吧。有什么特殊应用吗?

  • 行动时刻 - 使用正则表达式 Unlang允许在条件检查中进行正则表达式计算。这些通常是Posix正则表达式。运算符=〜和!〜与正则表达式相关联。为了简单的概念证明,我们将修改上一个练习: 1.编辑FreeRADIUS配置目录下的sites-available / default虚拟服务器,并在该部分顶部的post-auth部分中添加以下内容: if(request:Framed-Protocol