Utilizzare Regex per identificare i modelli nei codici postali del Regno Unito
-
12-11-2019 - |
Domanda
Per qualsiasi codice postale britannico Voglio sostituire tutte le lettere con Capital A e tutte le cifre con 9.
Ad esempio CH5 1ef sarebbe diventato AA9 9AA EC1N 4DH sarebbe diventato AA9A 9AA
è possibile in un singolo regex.replace o dovrei avere due dichiarazioni di regex.replace separate?
Soluzione
Non hai detto quale lingua stai usando, darò solo il regex.
Due operazioni:
- .
- Abbinamento Regex:
[A-Z]
e Sostituisci con:A
- Abbinamento Regex:
\d
e Sostituisci con:9
In Java, sarebbe come:
.String postcode = "CH5 1EF"; String result = postcode.replaceAll("[A-Z]", "A").replaceAll("\\d", "9");
Altri suggerimenti
Hai bisogno di due sostituzioni per questo: prima sostituire tutto [A-ZA-Z] con "A", quindi sostituire tutto [0-9] con "9".Anche se c'era un modo per farlo con una singola espressione sarebbe un incubo da leggere e mantenerlo.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow