【问题标题】:Removing hyperlink html tag from oracle sql result从 oracle sql 结果中删除超链接 html 标记
【发布时间】:2015-11-26 07:55:22
【问题描述】:

我正在编写 SQL 查询,它也可能返回 HTML 文本。 HTML 标签对我来说很好,因为我想在前端显示它的 HTML 标签格式。但我不需要链接。我的意思是无论如何我只能从列中删除超链接。只是锚标签。我在正则表达式方面很糟糕,尽管我认为这可能是解决这个问题的方法。任何帮助!

【问题讨论】:

    标签: sql regex oracle


    【解决方案1】:

    这应该适用于链接:

    <a[^>]*>(.*?)<\/a>
    

    既然你说你不懂正则表达式,那我还不如解释一下。 &lt;a 部分很简单,[^&gt;]* 将匹配到右括号的任何内容,括号就是括号。 (.*?) 匹配任何内容,无论长度如何,也可以匹配空链接。 ? 是必需的,以便它变得非贪婪,因此它在第一个结束标记处停止。 &lt;\/a&gt; 匹配结束标记。

    编辑:如果标签之间有空格,可以使用&lt;a[^&gt;]*&gt;((?:.|\s)*?)&lt;\/a&gt;。请注意,我添加了(?:.|\s)*? 来代替.*?.|\s 表示匹配任何字符或空格,?: 表示非捕获组,因为我们不关心匹配哪个特定字符。

    【讨论】:

    • 所以 Pavlin,这实际上匹配了从锚标记开始到结束标记结束的字符串,对吗?
    • 是的,没错。如果要删除标签,只需使用第一个捕获组进行替换。括号定义捕获组。
    • Bingo 它工作得像地狱一样.. :) 我做了两个替换一个用于开始标签和下一个用于结束标签.. .:)
    • 嘿 Pavlin,还有一个问题,如果我在文本之间有换行符,reg ex 将失败。任何解决方案:(
    • 我编辑了我的答案,它现在应该处理链接标签之间的空格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 2018-11-22
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    相关资源
    最近更新 更多