求个正则表达式

地图信息精确到街道,如何截取省市县区的名字?

中国四川省成都市双流县文化路
中国北京市大兴区文化街
中国四川省成都市都江堰市建设路

文本如上,想要的输出为:
四川 成都 双流
北京 大兴
四川 成都 都江堰

[code="java"] public static void main(String[] args) {
String[] addresses = { "中国四川省成都市双流县文化路", "中国北京市大兴区文化街 ",
"中国四川省成都市都江堰市建设路" };
for (String address : addresses) {
System.out.println(testAddress(address));
}

}

static final Pattern pattern = Pattern.compile("[省市区县]");

public static String testAddress(String address) {
    String[] names = pattern.split(address);
    StringBuilder sb = new StringBuilder();
    if (names[0].startsWith("中国")) {
        sb.append(names[0].substring(2));
    } else {
        sb.append(names[0]);
    }
    for (int i = 1; i < names.length - 1; i++) {
        sb.append(' ').append(names[i]);
    }
    return sb.toString();
}[/code]