Patterns.java

 1package eu.siacs.conversations.utils;
 2
 3import java.util.regex.Pattern;
 4
 5public class Patterns {
 6
 7    public static final Pattern URI_GENERIC =
 8            Pattern.compile(
 9                    "(?<=^|\\s)(tel|xmpp|http|https|geo|mailto):[a-zA-Z0-9\\-._~:/?#\\[\\]@!$&'()*+,;=%]+");
10
11    public static final Pattern URI_TEL =
12            Pattern.compile("^tel:\\+?(\\d{1,4}[-./()\\s]?)*\\d{1,4}(;.*)?$");
13
14    public static final Pattern URI_HTTP = Pattern.compile("https?://\\S+");
15
16    public static Pattern URI_GEO =
17            Pattern.compile(
18                    "geo:(-?\\d+(?:\\.\\d+)?),(-?\\d+(?:\\.\\d+)?)(?:,-?\\d+(?:\\.\\d+)?)?(?:;crs=[\\w-]+)?(?:;u=\\d+(?:\\.\\d+)?)?(?:;[\\w-]+=(?:[\\w-_.!~*'()]|%[\\da-f][\\da-f])+)*(\\?z=\\d+)?",
19                    Pattern.CASE_INSENSITIVE);
20
21    private Patterns() {
22        throw new AssertionError("Do not instantiate me");
23    }
24}