【发布时间】:2010-05-31 09:48:10
【问题描述】:
我需要从文件的行中提取邮政编码。 每行包含一个地址,并以不同的方式格式化。 例如。 “Großen Haag 5c,DE-47559 Kranenburg” 或者 “朗格鲁特 7b, 55294 博登海姆”
邮政编码总是一个五位数字,有时跟在“DE-”后面。 我使用Java。 非常感谢!
【问题讨论】:
我需要从文件的行中提取邮政编码。 每行包含一个地址,并以不同的方式格式化。 例如。 “Großen Haag 5c,DE-47559 Kranenburg” 或者 “朗格鲁特 7b, 55294 博登海姆”
邮政编码总是一个五位数字,有时跟在“DE-”后面。 我使用Java。 非常感谢!
【问题讨论】:
\b\d{5}\b
如果它们是“单独的”,即被单词边界包围,则将匹配 5 个数字(以确保我们不匹配较长数字序列的子字符串,尽管这些在地址文件中可能很少见)。
请记住,您需要转义 Java 字符串 ("\\b\\d{5}\\b") 中的反斜杠。
【讨论】:
- 和数字之间的位置算作单词边界。它只是不会匹配像123456 这样的数字,因为它包含超过五位数字。
matcher.group() 应该会给你匹配结果。当然,如果您不需要 \b,也可以删除它们。
Pattern.matcher("[0-9]{5}")
【讨论】: