java - 非常简单的正则表达式问题

标签 java regex

我有一个非常简单的正则表达式问题。假设我有两个条件:

  1. 网址 = http://www.abc.com/cde/def
  2. 网址 = https://www.abc.com/sadfl/dsaf

如何使用正则表达式提取 baseUrl?

示例输出:

  1. http://www.abc.com
  2. https://www.abc.com

最佳答案

像这样:

String baseUrl;
Pattern p = Pattern.compile("^(([a-zA-Z]+://)?[a-zA-Z0-9.-]+\\.[a-zA-Z]+(:\d+)?/");
Matcher m = p.matcher(str); 
if (m.matches())
    baseUrl = m.group(1);

但是,您应该使用 URI class相反,像这样:

URI uri = new URI(str);

关于java - 非常简单的正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998233/

相关文章:

c++ - 为什么 Visual Studio 正在删除我的反斜杠字符串

regex - Excel VBA - 查找带有通配符的字符串

ios - 具有六个数字的正则表达式格式

java - 如果一个方法必须只调用一次而再次调用该方法,则抛出哪个异常?

java - JAXB 子根元素

java - 在新的月份更新变量不会失败

regex - 如何为每场比赛只返回非空捕获组?

python - 正则表达式对于相同的输入字符串表现不同

java - Jython:将脚本中的java类实例化为Java对象,而不是Python对象

java - Spring转换服务的真实用例场景是什么