Traiter les paramètres d’un URI avec les expressions régulières
Les URI des services web utilisent fréquemment la syntaxe «?a=b&c=d» (RFC 1738) comme par exemple, cette URI de Google: http://www.google.ca/search?as_q=xml&lr=lang_fr. On veut parfois extraire les paramètres (a=b et c=d) de ces requêtes. Pour y arriver, on peut utiliser les expressions régulières comme dans cet exemple:
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.*;
import java.util.regex.*;
public class Encoding {
static Pattern
= Pattern.compile("(.*?)=(.*?)($|&)");
public static Hashtable
Hashtable
Matcher match = querypattern.matcher(query);
while (match.find()) {
String key = null,value = null;
try {
key = URLDecoder.decode(match.group(1),
“UTF-8″);
value = URLDecoder.decode(match.group(2),
“UTF-8″);
} catch (UnsupportedEncodingException uee) {}
a.put(key, value);
}
return a;
}
}