我正在使用以下URL:http://www.espn.com/blog/stephania-bell/post/_/id/3563/key-fantasy-football-injury-updates-for-week-4-2
我正在尝试提取博客的名称为(stephania-bell)。
我已经实现了以下函数来从URL中提取预期值:
def getBlogName( def decodeUrl )
{
def urlParams = this.paramsParser.parseURIToMap( URI.create( decodeUrl ) )
def temp = decodeUrl.replace( "http://www.espn.com", "" )
.replaceAll( "(/_/|\\?).*", "" )
.replace( "/index", "" )
.replace( "/insider", "" )
.replace( "/post", "" )
.replace( "/tag", "" )
.replace( "/category", "" )
.replace( "/", "" )
.replace( "/blog/", "" )
def blogName = temp.replace( "/", "" )
return blogName
}
但是我遗漏了一些东西,它返回的值是blogstephania-bell
。你能帮助我理解我在函数实现中遗漏了什么吗?或者也许有一个更好的方法来做同样的事情?
3条答案
按热度按时间f8rj6qna1#
不是你要求的,只是为了好玩(我以为这是你一开始想要的)
p1tboqfb2#
按照Java的
URL
类来处理URL可能会更有用。1.使用
getPath()
将 path 提取为字符串1.按路径分隔符
split("/")
拆分为 * 段 *1.利用数组索引
pathSegments[2]
提取相关路径段dtcbnfnu3#
这类工作可以很容易地通过正则表达式来处理。如果我们想提取
http://www.espn.com/blog/
和下一个/
之间的URL部分,那么下面的代码就可以做到这一点: