Ich möchte nur alphabetische Zeichen aus einer Sammlung herausfiltern. Zum Beispiel möchte ich nur die Zeichen A
B
c
d
von "A(B%$c32d"
. Verwenden Sie nur reguläre Ausdrücke?Filtern alphabetischer Zeichen in Clojure
Antwort
Simplest Implementierung ich denken kann:
(filter (fn [x] (Character/isLetter x)) "abc")
Es verwendet die Java statische Funktion Character.isLetter
.
auch, kann man '' apply str ... 'einfügen, um einen anderen String als endgültigen Wert zurück zu bekommen – lispHK01
Sie haben nicht viel geben, wie eine Eingabezeichenfolge jedoch eine Zeichenfolge Eine Sequenz ist, so dass Sie damit Zeichen herauszufiltern:
EDIT: ASCII Lösung/Refinement
(filter #(<= 65 (int %) 132) "abZ9%xy") ; See NielsK's comment
Returns eine Lazy-Sequenz von Zeichen.
Down-Stimmen ohne Erklärungen sind nicht hilfreich. –
Danke Frank C Englisch: www.mjfriendship.de/en/index.php?op...39&Itemid=32 Dein Code gibt die Nummern der Alphabete aus, nicht sie selbst. – amirteymuri
Übrigens habe ich keine Down - Stimmen gegeben :-) – amirteymuri
In Clojure:
(apply str (filter #(Character/isLetter %) "abc:sQ/SDQ_"))
;; "abcsQSDQ"
In Clojure und ClojureScript, eine Regex:
(apply str (re-seq #"[a-zA-Z]" "abc:sQ/SDQ_"))
Re: regex solution: \ w ist die Zeichengruppe von Wortzeichen, die auch Zahlen und enthält _. 'filter' ändert die Zeichenkette in einen Seq von Zeichen, und Regexes können nicht auf Zeichen angewandt werden, also schlägt es fehl. – NielsK
@NielsK Bearbeitet, vielen Dank. – nha
Es gibt auch' Character/isLetterOrDigit' – BHBH
Mit Regex dieses ist eine andere Lösung:
(re-seq #"[a-zA-Z]" "A(B%$c32d")
- 1. eine Zeichenfolge in alphabetischer Reihenfolge nach Zeile in Clojure (Script)
- 2. Sortieren von Zeichen in NSString in alphabetischer Reihenfolge
- 3. wie überprüft man, ob 3 Zeichen in alphabetischer Reihenfolge sind
- 4. ^M Zeichen zeigt in clojure slime-repl
- 5. Filtern von Zeichen eingegeben in einem UITextField
- 6. Filtern von ungültigen XML-Zeichen in Java
- 7. Filtern einer Zeichenkette unerwünschter Zeichen in Java
- 8. Ordnerstruktur in alphabetischer Reihenfolge zurückgeben
- 9. Rearrange Arraylist in alphabetischer Reihenfolge
- 10. Finde den längsten Teilstring in alphabetischer Reihenfolge
- 11. Wie wird ein Zeichen in Clojure in int umgewandelt?
- 12. jQuery alphabetischer Index
- 13. mysql alphabetischer reihenfolge
- 14. Clojure: Idiomatische Möglichkeit, ein Zeichen in eine Zeichenfolge einzufügen
- 15. Zentrale Möglichkeit, ungültige Unicode-Zeichen in Lxml zu filtern?
- 16. Schnelle Möglichkeit, illegale XML-Unicode-Zeichen in Python zu filtern?
- 17. Sorting Namen in alphabetischer Reihenfolge in C
- 18. Sortieren Array in alphabetischer Reihenfolge in Python
- 19. Angularjs - Reglerfunktion ungültig Zeichen von der Eingabe filtern Zeichen nicht gelöscht, bis ein gültiges Zeichen eingegeben
- 20. Länder in alphabetischer Reihenfolge aufsteigend in allen Sprachen sortieren
- 21. Holen Sie sich den ersten und letzten Buchstaben in alphabetischer Reihenfolge für ein Zeichen Vektor
- 22. Ausgabe des Wörterbuchs in alphabetischer Reihenfolge zurückgeben
- 23. mysql Tabellenspaltennamen in alphabetischer Reihenfolge abrufen
- 24. ListView in alphabetischer Reihenfolge ohne Vergleich
- 25. Sortieren eine Textdatei in alphabetischer Reihenfolge (Python)
- 26. Javascript Mergesort - Wörter in alphabetischer Reihenfolge
- 27. CSV-Spalte teilen & sortieren In alphabetischer Reihenfolge
- 28. Sortierung nach alphabetischer Reihenfolge immutable.js
- 29. Filter für Listen in Clojure
- 30. Wie heißen # und% in clojure?
Regexes sind ziemlich gut Umgang mit Strings . Die ersten zwei Antworten, die ich sehe (mit Filter), liefern alle eine Folge von Zeichen, während (clojure.string/Ersetze "A (B% $ c32d" # "[^ a-zA-Z]" "") einfach a zurückgibt Eine Funktion, die mit Strings umgehen soll, warum magst du es nicht? –
@AssenKolov das ist auch eine nette Lösung, könnte dein Kommentar eine Antwort sein. – nha
@Assen Kolov Danke.Ich war nur neugierig zu sehen, ob es auch gibt eine andere Methode, um diese Art von Filterung ohne Regex zu machen – amirteymuri