我正在使用grails应用。我需要从字符串中仅提取部分网址到.com(或gov,edu,mil,org,net等)。
例如:
输入:https://stackoverflow.com/questions?=34354#es4输出:https://stackoverflow.com/
输入:https://code.google.com/p/crawler4j/issues/detail?id=174输出:https://code.google.com/
任何人都可以建议如何做到这一点?此外,如果可以,我需要在结果字符串中将https更改为http。请帮忙。谢谢。
编辑:我向所有沮丧的人道歉,我没有把我尝试过的东西包括在内。这就是我的尝试:
URL url = new URL(website);
String webUrl = url.getprotocol()+"://"+url.getAuthority()
但我收到以下错误:MissingPropertyException occurred when processing request: [POST] /mypackage/resource/crawl
答案 0 :(得分:3)
这样的事情满足了给出的两个例子:
def url = new URL('http://stackoverflow.com/questions?=34354#es4')
def result = 'http://' + url.host +'/'
assert result == 'http://stackoverflow.com/'
def url2 = new URL('https://code.google.com/p/crawler4j/issues/detail?id=174')
def result2 = 'http://' + url2.host +'/'
assert result2 == 'http://code.google.com/'
编辑:
当然,您可以使用以下内容缩写连接:
def url = new URL('http://stackoverflow.com/questions?=34354#es4')
def result = "http://${url.host}/"
assert result == 'http://stackoverflow.com/'
def url2 = new URL('https://code.google.com/p/crawler4j/issues/detail?id=174')
def result2 = "http://${url2.host}/"
assert result2 == 'http://code.google.com/'
答案 1 :(得分:0)
我在代码中也发现了错误。我把getProtocol错误输入为getprotocol,它一次又一次地回避了我的观察。应该是:
URL url = new URL(website);
String webUrl = url.getProtocol()+"://"+url.getAuthority()
感谢大家的帮助。
答案 2 :(得分:0)
你可以尝试
String text = 'http://stackoverflow.com/questions?=34354#es4'
def parts = text.split('.com')
return parts[0] + ".com"
这应该可以解决您的问题