gpt4 book ai didi

java - 尝试创建一个正则表达式来从java中的字符串中提取网站地址,但无法正确执行

转载 作者:行者123 更新时间:2023-12-01 15:32:33 24 4
gpt4 key购买 nike

我正在尝试使用以下代码从网址中提取网站地址

public String getWebSiteAddress(String text)
{

Pattern p = Pattern.compile("\\b([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,3}\\b");

//Pattern p = Pattern.compile("^http\\:/[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,3}(/\\S*)?$");
System.out.println("\\b([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,3}\\b");
Matcher m = p.matcher(text);
if(m.matches())
{
System.out.println("got it");
return m.group(0) ;
}
else
{
System.out.println("ddnt get");
return "";
}


}

事实证明这段代码在 regexBuddy 中完美运行,但在 JAVA 中运行正常任何人都可以帮助我我的正则表达式有什么问题或者我应该根据java更改我的正则表达式中的某些内容吗?

我想要提取的网站类似于:

http://intelweb.xyz.kycv.kk.jj/~u0082/jbvelweb2/

最佳答案

您可能需要使用matcher的find()方法。

public String getWebSiteAddress(String text)
{
Pattern p = Pattern.compile("\\b([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,3}\\b");
Matcher m = p.matcher(text);

if (m.find()) {
System.out.println("got it");
return m.group(1) ;
}
else
{
System.out.println("didnt get");
return "";
}
}

显然只有整个字符串与正则表达式匹配时匹配才有效。

关于java - 尝试创建一个正则表达式来从java中的字符串中提取网站地址,但无法正确执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9399746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com