Ich habe einige Zeichenfolgen, die Buchstaben, Zahlen und das Symbol '#' enthalten können.
Ich möchte Ziffern mit Ausnahme der Wörter entfernen, die mit '#' beginnen.
Hier ist ein Beispiel:
"table9 dolv5e #10n #dec10 #nov8e 23 hello"
Und die erwartete Ausgabe ist:
"table dolve #10n #dec10 #nov8e hello"
Wie kann ich das mit Regex, Stringr oder Gsub machen?
Sie können Flags entfernen
i
, da die Groß- und Kleinschreibung nicht berücksichtigt wurdeVerwenden Sie dieses Muster:
[^#\d]+(#\w+|[A-Za-Z]+\w*)
[^#\d]+
= Zeichen beginnen mit keinem # und Ziffern#\w+
= find # gefolgt von Ziffer oder Buchstabe[A-Za-z]+\w*
= find letter gefolgt von Buchstabe und / oder Zahl ^ | Sie können dies ändern mit\D+\S*
= finden Sie ein beliebiges Zeichen, nicht nur, wenn das erste ein Buchstabe ist und nicht nur ein Buchstabe und / oder eine Zahl. Ich werde nicht als\w+\w*
Ursache\w
wie = angegeben[\w\d]
.Ich habe den Code in JavaScript ausprobiert und er funktioniert. Wenn Sie eine Übereinstimmung nicht nur gefolgt von einem Buchstaben wünschen, können Sie Code verwenden
quelle