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

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

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
2020-10-16 13:21:38 +08:00
这个 V2EX 不是匹配出来了么,你看看他的代码不就明白了么
jackrebel
2020-10-16 16:06:00 +08:00
使用正则解决, 楼上的就可以,
我的增强版:( 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
2020-10-17 18:30:43 +08:00
@zhongjun96 谢谢,我也是这样想,只是想问下有没有更先进的方法。
songdg
2020-10-17 18:32:54 +08:00
@imdong 确实是没有通用、一招搞掂的方法。
songdg
2020-10-17 18:37:12 +08:00
@flynaj 请教一下如何看 V2EX 的代码?
songdg
2020-10-17 18:43:50 +08:00
@jackrebel 谢谢,不过 ahk 就没有如此丰富的内置函数。
OldActorsSmile
2020-10-18 00:19:39 +08:00
我前几天开发抖音去水印小程序也有这个需求,也是用正则解决的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/715545

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX