diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-01-28 15:14:38 +0100 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-01-28 15:14:38 +0100 |
commit | ee2eb274a42a05518f2bc26fa8af816dde271d63 (patch) | |
tree | c1f807e52bb336cb49e830fb79b119f20efcc1f2 /src/org/openintents/openpgp | |
parent | 9509cfbb986ba8d28e1031b3600d07ff3014eea3 (diff) | |
download | openpgp-api-ee2eb274a42a05518f2bc26fa8af816dde271d63.tar.gz openpgp-api-ee2eb274a42a05518f2bc26fa8af816dde271d63.tar.bz2 openpgp-api-ee2eb274a42a05518f2bc26fa8af816dde271d63.zip |
SplitUserID into lib
Diffstat (limited to 'src/org/openintents/openpgp')
-rw-r--r-- | src/org/openintents/openpgp/util/OpenPgpUtils.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/org/openintents/openpgp/util/OpenPgpUtils.java b/src/org/openintents/openpgp/util/OpenPgpUtils.java index 7e3007d..a5e0163 100644 --- a/src/org/openintents/openpgp/util/OpenPgpUtils.java +++ b/src/org/openintents/openpgp/util/OpenPgpUtils.java @@ -73,4 +73,39 @@ public class OpenPgpUtils { } return hexString; } + + private static final Pattern USER_ID_PATTERN = Pattern.compile("^(.*?)(?: \\((.*)\\))?(?: <(.*)>)?$"); + + /** + * Splits userId string into naming part, email part, and comment part + * + * @param userId + * @return array with naming (0), email (1), comment (2) + */ + public static String[] splitUserId(String userId) { + String[] result = new String[]{null, null, null}; + + if (userId == null || userId.equals("")) { + return result; + } + + /* + * User ID matching: + * http://fiddle.re/t4p6f + * + * test cases: + * "Max Mustermann (this is a comment) <max@example.com>" + * "Max Mustermann <max@example.com>" + * "Max Mustermann (this is a comment)" + * "Max Mustermann [this is nothing]" + */ + Matcher matcher = USER_ID_PATTERN.matcher(userId); + if (matcher.matches()) { + result[0] = matcher.group(1); + result[1] = matcher.group(3); + result[2] = matcher.group(2); + } + + return result; + } } |