Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
U

URL-Detector

> 编程语言
Open source

A Java library to detect and normalize URLs in text

786 stars0 likes0 views
WebsiteGitHub

About

A Java library to detect and normalize URLs in text

Url Detector

The url detector is a library created by the Linkedin Security Team to detect and extract urls in a long piece of text.

It is able to find and detect any urls such as:

  • HTML 5 Scheme - //www.linkedin.com
  • Usernames - user:[email protected]
  • Email - [email protected]
  • IPv4 Address - 192.168.1.1/hello.html
  • IPv4 Octets - 0x00.0x00.0x00.0x00
  • IPv4 Decimal - http://123123123123/
  • IPv6 Address - ftp://[::]/hello
  • IPv4-mapped IPv6 Address - http://[fe30:4:3:0:192.3.2.1]/

Note: Keep in mind that for security purposes, its better to overdetect urls and check more against blacklists than to not detect a url that was submitted. As such, some things that we detect might not be urls but somewhat look like urls. Also, instead of complying with RFC 3986 (http://www.ietf.org/rfc/rfc3986.txt), we try to detect based on browser behavior, optimizing detection for urls that are visitable through the address bar of Chrome, Firefox, Internet Explorer, and Safari.

It is also able to identify the parts of the identified urls. For example, for the url: http://[email protected]:39000/hello?boo=ff#frag

  • Scheme - "http"
  • Username - "user"
  • Password - null
  • Host - "linkedin.com"
  • Port - 39000
  • Path - "/hello"
  • Query - "?boo=ff"
  • Fragment - "#frag"

How to Use:

Using the URL detector library is simple. Simply import the UrlDetector object and give it some options. In response, you will get a list of urls which were detected.

For example, the following code will find the url linkedin.com

java

    UrlDetector parser = new UrlDetector("hello this is a url Linkedin.com", UrlDetectorOptions.Default);
    List found = parser.detect();

    for(Url url : found) {
        System.out.println("Scheme: " + url.getScheme());
        System.out.println("Host: " + url.getHost());
        System.out.println("Path: " + url.getPath());
    }

Quote Matching and HTML

Depending on your input string, you may want to handle certain characters in a special way. For example if you are parsing HTML, you probably want to break out of things like quotes and brackets. For example, if your input looks like

<a href="http://linkedin.com/abc"&gt;linkedin.com&lt;/a>

You probably want to make sure that the quotes and brackets are extracted. For that reason, using UrlDetectorOptions will allow you to change the sensitivity level of detection based on your expected input type. This way you can detect linkedin.com instead of linkedin.com.

In code this looks like:

java

    UrlDetector parser = new UrlDetector("linkedin.com", UrlDetectorOptions.HTML);
    List found = parser.detect();

About:

This library was written by the security team and Linkedin when other options did not exist. Some of the primary authors are:

  • Vlad Shlosberg ([email protected])
  • Tzu-Han Jan ([email protected])
  • Yulia Astakhova ([email protected])

Third Party Dependencies

####TestNG

  • http://testng.org/
  • Copyright © 2004-2014 Cédric Beust
  • License: Apache 2.0

####Apache CommonsLang3: org.apache.commons:commons-lang3:3.1

  • http://commons.apache.org/proper/commons-lang/
  • Copyright © 2001-2014 The Apache Software Foundation
  • License: Apache 2.0

License

Copyright 2015 LinkedIn Corp. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the license at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Issues· 21 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Java

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言