我有弦
2011年1月9日,澳大利亚珀斯,扬格布
印度尼西亚雅加达,日期:2013-08-24
所以我想得到位置名Yangebup, Perth, Australia
和Jakarta, Indonesia
我怎样才能用regex得到那个位置名?我试图使用此代码.+?,\bDated\b
,但未找到匹配结果。
我还尝试使用regexpal.com测试我的regex,使用这段代码.+\bdated\b
我可以得到它,但是我必须使用不区分大小写(i),当我在java程序上编写它时,结果仍然是空的。
最佳答案
使用此正则表达式模式:
^(.*), Dated \d{4}-\d{2}-\d{2}$
List<String> locations = new ArrayList<String>();
locations.add("Yangebup, Perth, Australia, Dated 2011-01-09");
locations.add("Jakarta, Indonesia, Dated 2011-01-09");
String pattern = "^(.*), Dated \\d{4}-\\d{2}-\\d{2}$";
Pattern r = Pattern.compile(pattern);
for (String location : locations) {
Matcher m = r.matcher(location);
if (m.find()) {
System.out.println("Found a location: " + m.group(1) );
} else {
System.out.println("NO MATCH");
}
}
输出:
Found a location: Yangebup, Perth, Australia
Found a location: Jakarta, Indonesia
关于java - 正则表达式字之间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33250599/