SLe*_*deR 2 regex url dart flutter
假设我有以下 URL 作为字符串;
String urlSource = 'https://www.wikipedia.org/';
Run Code Online (Sandbox Code Playgroud)
我想从这个 url 字符串中提取主页名称;'wikipedia',从网址中删除https://、www、.com、.org部分。
提取它的最佳方法是什么?在RegExp 的情况下,我必须使用什么正则表达式?
你不需要利用的RegExp在这种情况下。
Dart 有一个用于解析 URL 的预制类:
Uri使用该 API,您想要实现的目标非常简单:
final urlSource = 'https://www.wikipedia.org/';
final uri = Uri.parse(urlSource);
uri.host; // www.wikipedia.org
Run Code Online (Sandbox Code Playgroud)
该Uri.host属性会给你www.wikipedia.org。从那里,您应该可以轻松地提取wikipedia.
Uri.host还将删除整个路径,即/主机之后的任何内容。
如果你想获得二级域名,即wikipedia从主机,你可以只做uri.host.split('.')[uri.host.split('.').length - 2].
但是,请注意,这不是万无一失的,因为您可能有或没有子域(例如www),并且顶级域也可能由多个部分组成。例如,co.uk使用co作为第二级域。