我想为以下内容编写一个正则表达式:
样式1:
的mailto:abc@gmail.com
regex1
应匹配以mailto:
PATTERN2:
?的mailto:abc@gmail.com受试者=印度&安培;主体=你好
regex2
应该提取查询字符串(后面的字符串?)
答案 0 :(得分:4)
不需要正则表达式。只需匹配前七个字符为“mailto:”的任何字符串。
如果您坚持使用正则表达式,则表达式为“mailto:。*”。如果你只想保留“mailto:”之后的内容,那就是“mailto:(。*)”
答案 1 :(得分:1)
首先,您可以使用String.startsWith(String prefix)
第二个可能修剪字符串为“?”然后使用String.split(“& | =”);和你一起排队 [主题,印度,身体,你好]
http://java.sun.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)
答案 2 :(得分:1)
正则表达式确实不是必需的。一个简单的String.startsWith就足够了第一个匹配,你可以使用URL类来提取查询。
String string = "mailto:abc@gmail.com?subject=Indian&body=hello";
if (string.startsWith("mailto:")) {
try {
URL url = new URL(string);
String query = url.getQuery(); // Here is your query string.
} catch (MalformedURLException e) {
throw new AssertionError("This should not happen: " + e);
}
}
答案 3 :(得分:0)