伦敦是一个很好的起点,但如果你了解像萨里这样的英国郡的正则表达式或正则表达式,那将非常感激。基本上我正在创建一个网络爬虫,但我正在检索的信息只提供伦敦街道名称,自治市镇和邮政编码。它没有说伦敦。
这是一个提供伦敦邮政编码@droogal
的网站是否有涵盖伦敦邮政编码的正则表达式库。如果你需要写它,邮政编码的第一部分会给出位置,即伦敦。
有:
WC,EC,E1-E20,N1-N22,NW1-NW11,SE1-SE28,SW1-SW20,W1-14 和大伦敦...... BR,CR,DA,EN,HA,IG,KT,RM,SM,TW,UB,WD。 p>
我使用的语言是Java,但是说大多数语言都有正则表达式!
这是我到目前为止所得到的。如何在正则表达式中编号?
public static void main(String[] args) throws IOException {
String postcode = "WD";
Pattern regex = Pattern.compile("^(WC|EC|BR|CR|DA|EN|HA|IG|KT|RM|SM|TW|UB|WD)");
Matcher finder = regex.matcher(postcode);
if (finder.find()) {
try {
String value = finder.group(0);
System.out.println("This is London");
} catch (NumberFormatException e) {
System.out.println(e.getMessage());
}
}
}
答案 0 :(得分:1)
我对正则表达式感到困惑:
private static final List LONDON_CODES = Arrays.asList("WC","EC","BR","CR","DA","EN","HA","IG","KT","RM","SM","TW","UB","WD");
public static void main(String ... a) {
if(LONDON_CODES.contains("WD")) {
System.out.println("This is London!");
} else {
System.out.println("This is country!");
}
}
答案 1 :(得分:1)
假设您有一个邮政编码,这与伦敦邮政编码匹配:
boolean isLondon = postcode.matches(".*(WC|EC|BR|CR|DA|EN|HA|IG|KT|RM|SM|TW|UB|WD).*");
需要注意的一点是,传递给String.matches()
的正则表达式必须与整个字符串匹配才能返回true。
答案 2 :(得分:0)
这是我想要的答案。
以下正则表达式与任何英国邮政编码的第一部分相匹配,以确定它是否为伦敦邮政编码。显然这是我对正则表达式的第一次尝试,但我已经测试过每个行政区
public static void main(String[] args) throws IOException {
String postcode = "BR1 1AA";
//Revised
Pattern regex = Pattern.compile("(WC|EC|BR|CR|DA|EN|HA|IG|KT|RM|SM|TW|UB|WD|(E[1-9]|E1[1-9]|E20)"
+ "|(N[1-9]|N1[1-9]|N2[0-2])|(NW[1-9]|NW1[0-1])"
+ "|(SE[1-9]|SE1[1-9]|SE2[0-8])|(W[1-9]|W1[1-4])"
+ "|(SW[1-9]|SW1[1-9]|SW20))");
Matcher finder = regex.matcher(postcode);
if (finder.find()) {
try {
String value = finder.group(0);
System.out.println("This is London");
} catch (NumberFormatException e) {
System.out.println(e.getMessage());
}
}
}
答案 3 :(得分:0)
我认为你提出的解决方案不会给你你想要的东西(道歉,我的网站让你误入歧途!)。并非所有伦敦外围区域的邮政编码都在伦敦境内。例如KT1是Kingston,它是大伦敦的一部分,KT24是Surrey的East Horsley,绝对不是伦敦的一部分。您最好的选择是从ONS / Ordnance Survey /我的网站下载完整的邮政编码数据集,并取出伦敦自治市镇的邮政编码或将建成区域设置为大伦敦(我不确定这些是否是等价,但我猜他们是。)