2

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

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

这是否可以在单个 RegEx.Replace 中实现,还是我必须有两个单独的 RegEx.Replace 语句?

4

2 回答 2

2

你还没有说你使用的是什么语言,我只会给出正则表达式。

两个操作:

  1. 匹配正则表达式:[A-Z]并替换为:A
  2. 匹配正则表达式:\d并替换为:9

在java中,它看起来像:

String postcode = "CH5 1EF";
String result = postcode.replaceAll("[A-Z]", "A").replaceAll("\\d", "9");
于 2012-01-23T23:12:49.653 回答
0

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

于 2012-01-23T23:11:13.993 回答