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?

È stato utile?

Soluzione

Non hai detto quale lingua stai usando, darò solo il regex.

Due operazioni:

    .
  1. Abbinamento Regex: [A-Z] e Sostituisci con: A
  2. 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
scroll top