【发布时间】:2014-09-18 19:56:41
【问题描述】:
我正在尝试从网址中提取经纬度:
资源: ...sensor=false¢er=-15.842208999999999%2C-48.023084&zoom=17&size=256x256&language=en&client=google-maps-frontend&signature=hbey3U4lycTNgX48asW8MODjJLM我不擅长正则表达式,所以我使用了这个正则表达式测试器 (http://regexpal.com/) 并编写了这个正则表达式 -?\d{2}\.?\d{6}(适用于 JAVA)
它产生这个结果(谁说它是 regexpal.com):
-15.842208 ... -48.023084所以当我这样做时(在 java 中):
for (Element element : newsHeadlines) {
if(element.toString().contains("https://maps.google.com")){
List<String> lista = get_matches(element.attr("content"), "-?\\d{2}\\.?\\d{6}");
}
}
public static List<String> get_matches(String s, String p) {
// returns all matches of p in s for first group in regular expression
List<String> matches = new ArrayList<String>();
Matcher m = Pattern.compile(p).matcher(s);
while(m.find()) {
matches.add(m.group(1)); //<-- Exception m.group(1) not have any results.
}
return matches;
}
我的正则表达式有什么问题?
【问题讨论】:
-
为什么将
-作为可选的?试试-\d{2}\.?\d{6}或-?\d{2}\.\d{6} -
很好,有你的建议和一点安排,我终于修好了,谢谢。
标签: java android regex eclipse netbeans