Android: извлечь Великобритания почтовый индекс - PullRequest
1 голос
/ 11 декабря 2011

Здравствуйте, я пытаюсь извлечь почтовый индекс Великобритании из строки, т. Е. «Дом человека находится на SS9 8ID, мы будем там в 8 вечера», поэтому я могу извлечь бит «SS9 8ID».Я пробовал следующий код, но по какой-то причине он не работает ... какие-либо идеи ???

        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"); }

1 Ответ

1 голос
/ 11 декабря 2011

Метод matches соответствует всей строке, вместо этого следует использовать find. И не используйте ^ и $ в выражении.

Также SS9 8ID не соответствует регулярному выражению, поскольку ABD-HJLNP-UW-Z не включает в себя букву I, которая находится в почтовом индексе.

...