2017-01-09 134 views
-1

我无法创建一个正则表达式模式,它只会给我一个URL的域名。正则表达式模式只在第一次出现正斜杠之前找出字符串

测试字符串是:

HTTP : //host.com/first/second

现在,从上面的字符串,我只希望我的正则表达式查找:

http : //host.com

直到正则表达式找到字符串中的第一个单斜杠斜线出现为止。

在此先感谢。

+0

怎么样阅读[否定类](http://www.regular-expressions.info/charclass.html#negated)。它会给你的能力[排除'/'](https://www.regex101.com/r/3YLUDz/1) –

+0

那么:URI uri = URI.create(“http://host.com/first /第二”); System.out.println(uri.getScheme()+“://”+ uri.getHost()); ? – Gustave

+0

不@古斯塔夫,我也想过。但我的要求有点不同。 – ani90

回答

1

您可以通过单一藏匿分裂((?<!\/)\/(?!\/) - 斜线不进行,而不是跟着一个斜杠),并使用第一部分:

String input = "http://host.com/first/second"; 
String[] parts = input.split("(?<!\\/)\\/(?!\\/)"); 
System.out.print(parts[0]); 

演示:https://ideone.com/7Okn6C

相关问题