1
你好,我試圖從一個字符串中提取一個英國郵政編碼,即「該人的房子是在SS9 8ID我們將在晚上8點」,所以我可以提取「SS9 8ID」位。我試過下面的代碼,但由於某種原因它不工作......任何想法?android:extract uk postcode
String pc1="^([A-PR-UWYZ](([0-9](([0-9]|[A-HJKSTUW])?)?)|([A-HK-Y][0-9]([0-9]|[ABEHMNPRVWXY])?)) [0-9][ABD-HJLNP-UW-Z]{2})|GIR 0AA$";
String test="the person's house is at SS9 8ID we'll be there at 8pm";
Pattern pattern = Pattern.compile(pc1);
Matcher matcher = pattern.matcher(test.toUpperCase());
if (matcher.matches()) {
//Log.d("pccode:::", matcher.group(1));
Log.d("pccode:::", matcher.group());
} else { Log.d("NO","NO PCODE"); }
SS9 8ID不是有效的英國郵政編碼;我懷疑這個問題是作爲一個例子來彌補的,但是如果他用它作爲測試的例子,那麼這是一個糟糕的選擇。他提供的正則表達式看起來像官方的(減去海外領土,軍事和其他特殊代碼),儘管我沒有詳細檢查它。總之,如果他使用更好的測試代碼,他會有更好的運氣(我使用「TE57 1NG」作爲測試代碼,但使用真實的有效代碼也是一個好主意。 – Spudley
謝謝找到工作!!! – ITECH
如何我接受嗎? – ITECH