Slette tegn som matcher et mønster

Arduino:
Slette tegn som matcher et mønster

Slik gjør du:

void setup() {
  Serial.begin(9600);
  String input = "H3ll0 W0rld! 123";
  String pattern = "0-9";
  String output = deletePattern(input, pattern);
  Serial.println(output);
}

void loop() {
  // Ingenting her for nå.
}

String deletePattern(String str, const String& pattern) {
  for (int i = 0; i < pattern.length(); i += 3) { // Antar et enkelt tegnområde '0-9'
    for (int j = 0; j < str.length(); j++) {
      if (str[j] >= pattern[i] && str[j] <= pattern[i+2]) {
        str.remove(j, 1);
        j--; // Juster indeks etter fjerning
      }
    }
  }
  return str;
}

Eksempel utdata: Hll Wrld!

Dypdykk

Sletting av tegn etter mønster i Arduino er mer et manuelt inngrep enn i språk med innebygget regular expressions-støtte. Historisk sett var ikke Arduinoer ment for avansert tekstbehandling, men med popularisering og kraftigere maskinvare har behovet økt. Et alternativ til denne manuelle metoden er å bruke en bibliotek som regex.h, men dette kan være minnekrevende. Implementasjonen over er grunnleggende og er ment for enkle mønstre, som å fjerne sifre eller spesifikke tegn.

Se også