我正在寻找一种使用RegEx从文本中提取URL的方法。关于SF,这里有很多问题和很好的答案,但是我没有找到能够提取自定义方案的URL的RegEx解决方案。
以下是一些我需要从中提取URL的示例:
Text: Send me a message on whatsapp whatsapp://send?text=Hello+World. I will get in touch!
-> Should extract whatsapp://send?text=Hello+World
Text: Some text google.com
-> Should extract google.com
Text: There are many nice people on https://www.stackoverflow.com
-> Should extract https://www.stackoverflow.com
Text: You can send visit my Facebook profile on fb://myhappyprofile.
-> Should extract fb://myhappyprofile
Text: https://www.google.com
-> Should extract https://www.google.com
到目前为止,我发现的解决方案明确提取了以http:// https://或://开头的URL 。在这些解决方案中,必须在表达式中指定协议。
我从中得到最大结果的表达式是以下表达式:
(http|ftp|https|whatsapp|fb):\/\/([\w_-]+(?:(?:\.[\w_-]+)?))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?
在这里,我列出了类似WhatsApp和Facebook的URL方案(“深层链接”)。不幸的是,这不能很好地扩展。
任何帮助,将不胜感激!
如果我没看错,您想要的是一种通用的方法来检测URL使用的协议,因此您无需维护100个不同协议的列表?
如果是这样,那么用标准字符捕获替换协议列表就可以了。
假如说:
那意味着以下应该做的工作
([a-zA-Z]{2,20}):\/\/([\w_-]+(?:(?:\.[\w_-]+)?))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句