使用正则表达式识别英国邮政编码中的模式

时间:2012-01-23 22:51:14

标签: regex replace postal-code

对于任何英国邮政编码,我想用大写A替换所有字母,用9替换所有数字。

例如 CH5 1EF将成为AA9 9AA EC1N 4DH将成为AA9A 9AA

这可能在一个RegEx.Replace中,还是我必须有两个单独的RegEx.Replace语句?

2 个答案:

答案 0 :(得分:2)

你还没说过你正在使用什么语言,我只是给正则表达式。

两个操作:

  1. 匹配正则表达式:[A-Z]并替换为:A
  2. 匹配正则表达式:\d并替换为:9
  3. 在java中,它看起来像:

    String postcode = "CH5 1EF";
    String result = postcode.replaceAll("[A-Z]", "A").replaceAll("\\d", "9");
    

答案 1 :(得分:0)

您需要两次替换:首先将所有[A-Za-z]替换为“A”,然后将所有[0-9]替换为“9”。即使有一种方法可以用单个表达式来实现这一点,阅读和维护它也是一场噩梦。