如何在Delphi中实现一组标准的超链接检测规则

lke*_*ler 8 delphi hyperlink string-matching

我目前在我的程序中自动检测文本中的超链接.我做的很简单,只查找http://或www.

但是,用户建议我将其扩展为其他形式,例如:https://或.com

然后我意识到它可能不止于此,因为有ftp和mailto和文件,所有其他顶级域名,甚至电子邮件地址和文件路径.

我认为最好的方法是通过遵循当前使用的一些常用的标准超链接检测规则集来限制它.也许Microsoft Word是如何做到的,或者RichEdit是如何做到的,或者你知道更好的标准.

所以我的问题是:

是否有内置函数,我可以从Delphi调用来进行检测,如果有,那么调用会是什么样的?(我计划将来去FireMonkey,所以我更喜欢能在Windows之外运行的东西.)

如果没有可用的功能,是否有一些地方我可以找到一组记录在Word,RichEdit中检测到的内容的规则,或者应该检测到的任何其他规则集?那将允许我自己编写检测代码.

RRU*_*RUZ 7

尝试PathIsURL在ShLwApi单元中声明的功能.

  • 如果我在文本中检查每个单词(由空格或其他非url字符分隔)的长度超过5个字符,那就不会太糟糕了. (4认同)