我目前在使用正则表达式提取 URL 时遇到一些问题。
我希望我的正则表达式采用 URL,例如:
http://stackoverflow.com/questions/ask
https://stackoverflow.com
http://local:1000
https://local:1000
通过一些教程,我了解到这个正则表达式可以找到以上所有内容:^(http|https)\://.*$
但是,当它根本不应该使用它时,它也会http://local:1000;http://invalid
http://khttp://
作为单个字符串使用。
我知道我的表达式不是为了排除这种情况而写的,但我的问题是我想不出如何写它,所以它会检查这种情况。
任何帮助是极大的赞赏!
编辑:
看看我的问题,我似乎可以消除我的问题,只要我可以实施检查以确保在初始 http:// 或 https:// 之后的字符串中不会出现“//”,任何想法关于如何实施?
抱歉,这将使用 Java 完成
我还需要添加以下约束:一个字符串,例如http://local:80/test:90
因为端口重复而失败......我需要一个只允许两个总数的约束:一个有效字符串中的符号(一个在 http/s 之后)和一个港口前。