Используйте Regex для определения шаблонов в почтовых индексах Великобритании - PullRequest
2 голосов
/ 24 января 2012

Для любого почтового индекса Великобритании я хочу заменить все буквы на заглавные A и все цифры на 9.

Например CH5 1EF станет AA9 9AA EC1N 4DH станет AA9A 9AA

Возможно ли это в одном RegEx.Replace или мне нужно иметь два отдельных оператора RegEx.Replace?

Ответы [ 2 ]

2 голосов
/ 24 января 2012

Вы не сказали, какой язык вы используете, я просто дам регулярное выражение.

Две операции:

  1. Соответствующее регулярное выражение: [A-Z] и замените на:A
  2. Соответствующее регулярное выражение: \d и заменить на: 9

В Java это будет выглядеть так:

String postcode = "CH5 1EF";
String result = postcode.replaceAll("[A-Z]", "A").replaceAll("\\d", "9");
0 голосов
/ 24 января 2012

Для этого вам понадобятся две замены: сначала замените все [A-Za-z] на «A», а затем замените все [0-9] на «9».Даже если бы был способ сделать это с одним выражением, читать и поддерживать его было бы кошмаром.

...