我无法创建一个正则表达式模式,它只会给我一个URL的域名。正则表达式模式只在第一次出现正斜杠之前找出字符串
测试字符串是:
HTTP : //host.com/first/second
现在,从上面的字符串,我只希望我的正则表达式查找:
http : //host.com
直到正则表达式找到字符串中的第一个单斜杠斜线出现为止。
在此先感谢。
我无法创建一个正则表达式模式,它只会给我一个URL的域名。正则表达式模式只在第一次出现正斜杠之前找出字符串
测试字符串是:
HTTP : //host.com/first/second
现在,从上面的字符串,我只希望我的正则表达式查找:
http : //host.com
直到正则表达式找到字符串中的第一个单斜杠斜线出现为止。
在此先感谢。
您可以通过单一藏匿分裂((?<!\/)\/(?!\/)
- 斜线不进行,而不是跟着一个斜杠),并使用第一部分:
String input = "http://host.com/first/second";
String[] parts = input.split("(?<!\\/)\\/(?!\\/)");
System.out.print(parts[0]);
怎么样阅读[否定类](http://www.regular-expressions.info/charclass.html#negated)。它会给你的能力[排除'/'](https://www.regex101.com/r/3YLUDz/1) –
那么:URI uri = URI.create(“http://host.com/first /第二”); System.out.println(uri.getScheme()+“://”+ uri.getHost()); ? – Gustave
不@古斯塔夫,我也想过。但我的要求有点不同。 – ani90