我有弦
2011年1月9日,澳大利亚珀斯,扬格布
印度尼西亚雅加达,日期:2013-08-24
所以我想得到位置名Yangebup, Perth, AustraliaJakarta, 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/

10-13 03:11