【发布时间】:2020-02-17 00:47:18
【问题描述】:
我得到一个 url 字符串作为 Url 类的构造函数的输入,我想用我的正则表达式将它解析为 protocol、host、port、path、query、fragmet 等部分,其中某些部分可以失踪。例如我可以得到https://domain:80/path 或者我可以得到https://domain/path?query#fragment 我需要这样的数组:
["https", "://", "domain", ":80", "path", "", "", "", ""]
或
["https", "://", "domain", "", "path", "?", "query", "#", "fragment"]
数组中的每个子字符串都应该是使用匹配器的正则表达式中的一组。
稍后我将制作 getter,它将为我提供此 url 的特定部分,或者我将简化路径,以防 /./ 或 /../ 在其中。 现在的问题是如何将其保存到一个数组中,以便以后使用。
【问题讨论】:
-
你为什么不把它分配给一个 URL 类,然后使用内置方法来实现你想要的?
-
因为我有点不能使用内置函数:D
-
您是说您可以使用
regex解析器的内置功能(即方法),但不允许使用专门为此目的创建的类的方法?这真的没有多大意义。是什么迫使你受到这种限制? -
是的,这对我来说也没有意义,但这是一个不允许的练习,我应该这样做。
-
然后您需要查看
Pattern和Matcher类,然后在URL 或其他内容上尝试一些示例。如果您遇到问题,请尝试修改您的问题,有人会帮助您。
标签: java arrays regex url save