使用正则表达式解析行

时间:2011-11-11 00:43:11

标签: java regex

  String  url =    "http://search.host.com/search-ui/?mq=*%3A*&f=productLine%WS%3A+Globalstar%22%5D&f=product%5B"

我想使用正则表达式从上面的链接中仅提取 search-ui 。我怎样才能以最有效的方式做到这一点。因为我可以使用split方法解析上面的url。但是还有其他方法可以达到这个目的。

String a[] = url.split("/");

所以通过这种方式[3]有搜索-ui。还有其他有效的方法..

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

使用split()

urlString.split("/")[3];

或更准确的东西:

urlString.split(".com/")[1].split("/?")[0];
顺便说一句,使用for循环而不是使用split会更快,但split更容易,更易读。

使用regex

正则表达式更灵活,更准确但更慢。

Pattern pattern = Pattern.compile("^http://.*?/(.*?)/.*?$");
Matcher matcher = pattern.matcher(urlString);
matcher.group(0);