我想写以下正则表达式:如何使用正则表达式从邮寄地址提取信息链接
样式1:
至mailto:[email protected]
regex1
应匹配所有以mailto:
模式2:
的mailto:[email protected]主题=印度&体=你好
的regex2
应(后弦?)提取查询字符串
我想写以下正则表达式:如何使用正则表达式从邮寄地址提取信息链接
样式1:
至mailto:[email protected]
regex1
应匹配所有以mailto:
模式2:
的mailto:[email protected]主题=印度&体=你好
的regex2
应(后弦?)提取查询字符串
无需常用表达。只需匹配前7个字符为“mailto:”的任何字符串即可。
如果你坚持使用正则表达式,表达式将是“mailto:。*”。如果你只是想保留什么是后 “的mailto:”,这将是 “电子邮件地址:(。*)”
+1你可以看看正则表达式2 – 2010-02-14 13:44:59
你真的想用正则表达式来拉开一个查询串?有专门设计的图书馆可以处理所有边缘案例。 – 2010-02-14 14:33:54
对于第二种情况,请参阅http://stackoverflow.com/questions/2261222/how-to-use-regular-expressions-to-extract-information-from-mailto-links/2261448#2261448 – Daniel 2010-02-14 15:21:35
对于第一,你可以使用String.startsWith(字符串前缀)
而且其次也许修剪字符串为“?”然后使用String.split(“& | =”);你甲肝与 [主题,印度,身体,你好]
http://java.sun.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)
正则表达式实在是没有必要的数组。一个简单的String.startsWith可以满足第一个匹配的要求,您可以使用URL类来提取查询。
String string = "mailto:[email protected]?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);
}
}
/^mailto:(.+?)$/? – dangerstat 2010-02-14 13:41:55
对于Q2,请参阅http://stackoverflow.com/questions/1667278/parsing-query-strings-in-java – kennytm 2010-02-14 14:32:41