Мне нужно регулярное выражение машинописи, чтобы извлечь до начала второй или третьей части из URL от начала.
Например, вот мой URL:
https://org.sharepoint.com/sites/controls/_api/web/lists
Я хочу, чтобы мое регулярное выражение return:
https://org.sharepoint.com/sites/controls
Найден шаблон регулярного выражения:
^https?://[^/]+
Вышеупомянутое регулярное выражение извлекает только здесь:
https://org.sharepoint.com
Но я хочу извлечь до здесь:
Вы можете попробовать это ^https?:\/\/([^\/]+\/){3}
^https?:\/\/([^\/]+\/){3}
https://github.com/tc39/proposal-regexp-named-groups
гораздо более читабельно, гораздо удобнее (особенно для замены);)
const string = 'https://org.sharepoint.com/sites/controls/_api/web/lists'; const regex = /^(?<protocol>https?):\/\/(?<domain>[^\/]+)\/(?<route1>[^\/]+)\/(?<route2>[^\/]+)/; const result = string.match(regex); resultElement.innerHTML = JSON.stringify({result, "result.groups": result.groups}, null, 4);
<pre id="resultElement"/>
Можно разделить URL-адрес на разделителе с помощью регулярного выражения, а затем соединить вместе первые 3 части:
String url = "https://org.sharepoint.com/sites/controls/_api/web/lists"; String[] parts = url.split("(?<!/)/(?!/)"); String output = parts[0] + "/" + parts[1] + "/" + parts[2]; System.out.println(output);
Это напечатает: