V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
牛客网
songdg
V2EX  ›  程序员

有没有办法获取这段文字中的网址

  •  
  •   songdg · 4 天前 · 1072 次点击
    尤力优运动用品有限公司订单商品网址: https://trade.1688.com/order/offer_snapshot.htm?spm=a360q.8274423.0.0.49c84c9a1vn15M&buyer_id=2209255322256&order_entry_id=1280302311779325622 经营的阿里巴巴网站广告宣传该产品是“100%”该宣传疑似虚假广告。
    11 条回复    2020-10-18 00:19:39 +08:00
    zhongjun96
        1
    zhongjun96   4 天前   ❤️ 1
    匹配 http 开头坐标,然后下一个空格截断就行了
    BoarBoar
        2
    BoarBoar   4 天前   ❤️ 1
    就是楼上说的,如果没空格也可以用 asc 值判断汉字,你这萌新得太过了点把。。
    gablic
        3
    gablic   4 天前
    @BoarBoar 我猜他想问的是用什么软件
    imdong
        4
    imdong   4 天前   ❤️ 1
    正则表达式,任何语言下都有解决方案,简易实现如下:

    https?:\/\/[a-zA-Z0-9\.-]+(\/[\w\/\.\?=&%]+)?

    https://regex101.com/r/rDylae/1

    已知问题,网址中如果有意料之外的特殊符号,则无法匹配,需要完善符号库。

    https 如果过大小写掺杂,要么用忽略大小写匹配,要么就用这个方法 [hH][tT]{2}[pP][sS]?:\/\/ 开头

    通用不考虑误匹配,一楼方案亦可:

    [hH][tT]{2}[pP][sS]?:\/\/[a-zA-Z0-9\.-]+([^\s]+)?

    https://regex101.com/r/rDylae/2

    但是依然会有其他问题,比如无空格但是汉字不属于其中的,自己取舍,汉字算不算在内,不算的话,就把汉字也排除,具体方法自己搜索一下把。
    flynaj
        5
    flynaj   4 天前
    这个 V2EX 不是匹配出来了么,你看看他的代码不就明白了么
    jackrebel
        6
    jackrebel   4 天前
    使用正则解决, 楼上的就可以,
    我的增强版:( http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?


    js 代码:

    var pattern = "/( http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/g";

    str = '尤力优运动用品有限公司订单商品网址: https://trade.1688.com/order/offer_snapshot.htm?spm=a360q.8274423.0.0.49c84c9a1vn15M&buyer_id=2209255322256&order_entry_id=1280302311779325622 经营的阿里巴巴网站广告宣传该产品是“100%”该宣传疑似虚假广告。';

    console.log(pattern.test(str));



    可使用 https://www.8kmm.com/sites/3663.html 这个工具进行测试和生成代码。
    songdg
        7
    songdg   3 天前
    @zhongjun96 谢谢,我也是这样想,只是想问下有没有更先进的方法。
    songdg
        8
    songdg   3 天前
    @imdong 确实是没有通用、一招搞掂的方法。
    songdg
        9
    songdg   3 天前
    @flynaj 请教一下如何看 V2EX 的代码?
    songdg
        10
    songdg   3 天前
    @jackrebel 谢谢,不过 ahk 就没有如此丰富的内置函数。
    OldActorsSmile
        11
    OldActorsSmile   2 天前
    我前几天开发抖音去水印小程序也有这个需求,也是用正则解决的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2869 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 16ms · UTC 14:23 · PVG 22:23 · LAX 07:23 · JFK 10:23
    ♥ Do have faith in what you're doing.